Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lecture d'un fichier.txt [ Divers / Débutant(e) ] (MAZALEYRAT)

lundi 10 décembre 2007 à 11:21:35 | Lecture d'un fichier.txt

MAZALEYRAT

Sujet : Probleme de lecture d'un fichier de type.txt avec PHP

Bonjour,
Je me casse la tête depuis quelques jours sur la lecture d'un fichier .txt (que me procure un client). Ce dernier est généré par un serveur selon un codage (à priori) incompatible avec php....
Le problème posé :
- j'utilise les fonctions habituelles et classiques de php pour l'ouverture du fichier, sa lecture et la récupération de l'ensemble des données
- le fichier .txt (client) comprend plusieurs variables que je "split" dans un tableau.
- lorsque je lis chacune des valeurs du tableau, il apparait des caractères bizarres (des ? pour être très précis) devant chaque lettre.
- en revanche, en avant de lancer mon petit programme, si j'ouvre le fichier original (client), que je fais un copier/coller dans un éditeur classique (type TextEdit sur Mac), que j'enregistre ce nouveau fichier .txt avec le même nom, là mon php fonctionne parfaitement.

Le but : parvenir à ouvrir et récupérer les infos correctement du fichier original .txt (client) sans avoir à faire de manipulations préalables sur le dit fichier.

Ben je ne sais si c'est tordu, compliqué, basique, hilarant pour les pros.... mais moi je m'y perds et j'ai épuisé toutes mes ressources... même après avoir parcouru des km de scripts, conseils et autres tutoriaux sur tous les sites dont je connais l'existence..... help me please !!!!!!!

le code de mon programme php :

<?php
$fichier = "test.txt";
$handle = fopen ($fichier, "rb");
$contenu = fread($handle, filesize ($fichier));
// je récupère les différentes variables du fichier en les "spitant" sur la particule "&"
$liste = preg_split("/[&]+/", $contenu);
//truc bizarre contenu dans l'entête du fichier client
$truc = $liste[0];
//Pour la variable numeromachine
$num = $liste[1];
$numeromachine = preg_split("/[=\n]+/", $num);
//Pour la variable nom
$nomtemp = $liste[2];
$nom = preg_split("/[=\n]+/", $nomtemp);
//Pour la variable deno
$denotemp = $liste[3];
$deno = preg_split("/[=\n]+/", $denotemp);
//Pour la variable gain
$gaintemp = $liste[4];
$gain = preg_split("/[=\n]+/", $gaintemp);
//Pour la variable date
$datetemp = $liste[5];
$date = preg_split("/[=\,]+/", $datetemp);
//Pour la variable heure
$heuretemp = $liste[6];
$heure = preg_split("/[=(\n)]+/", $heuretemp);
fclose($handle);
// Essai de print du contenu d'une des valeurs du tableau >>>>> voilà mon problème avec tous les ??????? qui apparaissent !!!!!!!
print_r($numeromachine);
?>

lundi 10 décembre 2007 à 15:54:22 | Re : Lecture d'un fichier.txt

neigedhiver

Salut, Cherche par là : http://www.php.net/manual/fr/function.utf8-encode.php http://www.php.net/manual/fr/function.utf8-decode.php

mardi 11 décembre 2007 à 09:03:07 | Re : Lecture d'un fichier.txt

MAZALEYRAT

Merci de t'être penché sur mon problème... et merci pour la réponse apportée !
...malheureusement, après toute la nuit à chercher à mettre en place un script pour encoder mes valeurs en utf8.... ben rien à faire.... le résultat est toujours le même avec les mêmes "?" partout.... mais il se peut que je ne sache pas écrire correctement, et au bon endroit, cette ligne de code magique ! c'est désespérant de se prendre la tête sur des trucs aussi nuls et qui me bloquent pour tout le reste de mon développement.

Donc si il te reste encore un peu d'énergie et de temps à "perdre", je suis preneur d'une "intervention" plus en profondeur... avec ma reconnaissance éternelle, à défaut de dire "à charge de revanche"...sauf si en Flash je peux apporter mes quelques contributions !

Bonne journée.

mardi 11 décembre 2007 à 11:13:23 | Re : Lecture d'un fichier.txt

neigedhiver

Salut, Tu dis que t'as essayé, en vain, d'encoder en utf8... As-tu tenter de décoder, pour le cas où ce serait justement de l'utf8 ? Tu dis qu'en copiant collant dans ton éditeur, ça fonctionne. C'est probablement que l'encodage d'origine du fichier est différent de celui que tu utilises. Maintenant, il reste possible que ce problème d'encodage ne se voit qu'à l'affichage à l'écran. Dans ce cas, il faut veiller à uniformiser l'encodage de la page : soit tout en utf-8, soit tout en iso-8859-1. L'encodage d'origine du txt, toi seul peut le voir. Je sais pas ce que vaut cet éditeur sous Mac, mais s'il est plus évolué que le notepad de windows, il devrait t'indiquer quel jeu de caractères est utilisé pour ce fichier : utf8 ou iso ? Si tu affiches en iso et que le fichier est en utf8 => utf8_decode() Si tu affiches en utf8 et que le fichier est en iso => utf8_encode() Si le fichier et l'affichage sont tous les deux en utf8 (ou en iso) => normalement rien à faire : je doute que tu sois dans ce cas là. Voilà ce que je peux dire pour l'instant...

mardi 11 décembre 2007 à 11:44:39 | Re : Lecture d'un fichier.txt

MAZALEYRAT



...coder... décoder... oui j'ai essayé tous les cas de figures
...mon écran/navigateur réglé aussi en utf8
...quand depuis php j'envoie les infos dans Flash, elles arrivent aussi avec tous ces fichus "???"

J'ai toutefois remarqué une chose : si tu regardes bien mon code php, il y a plusieurs étapes : d'abord la lecture des données, puis le spit des variables (avec la particule "&") puis le split des valeurs pour chaque variable (avec le saut de ligne \n). Si je fais un print sur la première étape, la donnée globale lue s'affiche correctement (intégralité du fichier texte)... mais passée cette première étape, et juste après le premier split (avec le "&") c'est à partir de là que ça déconne.

D'ailleurs, as tu essayé de lancer mon script .php depuis ton navigateur ? .. et si oui, constates tu toi sur ton écran le même phénomène ???? ... si oui c'est bien que mon code déconne....
Accès : www.hygienet.fr/test/test.php
Accès fichier texte de base : www.hygienet.fr/test/test.txt

Merci.....

mardi 11 décembre 2007 à 12:36:00 | Re : Lecture d'un fichier.txt

neigedhiver

Re, C'est bien un problème d'encodage : ton fichier texte est en UTF-16 Si tu affiches ta page en UTF-16, t'as des caractères asiatiques (je saurais pas dire quelle langue, mais ce sont bien des idéogrammes). Ton code n'a rien de transcendant, en ce sens qu'il ne fait rien sur les caractères. Donc ça ne vient pas de lui... Par contre, c'est vrai que le fichier texte de ton client est un peu mal foutu...

mardi 11 décembre 2007 à 12:51:13 | Re : Lecture d'un fichier.txt

MAZALEYRAT

RE..... Effectivement le fichier original .txt de mon client est assez étrange, mais hélas je ne peux rien y faire ni changer... et la solution qui consisterait à le transformer à la main dans un éditeur ad'hoc est à exclure (la procédure doit se faire de manière automatique)... donc il ne me reste plus que la solution de trouver un moyen dans php pour résoudre ce problème....
Mais ce que je ne comprends pas c'est qu'avant de "spliter" les données lues, l'affichage se fait correctement, et dès que je split ça commence à déconner.... très bizarre....
D'après toi, existe-t-il une solution avec php pour lire ce p... de fichier source et le re-écrire en lieu et place avec un bon codage utf8 ?.... ce qui me permettrait tout de suite derrière de le lire à nouveau sans rencontrer ces fichus problème d'encodage UTF-16 ?





Cette discussion est classé dans : fichier, liste, txt, preg, split


Répondre à ce message

Sujets en rapport avec ce message

Créer un fichier TXT [ par DEL ] j'aimerai savoir comment créer un fichier txt :/ ca peut paraitre simple mais j'ai pas trouvé mon bonheur sur php.net :/mon script ressemble a ca :if téléchargement de fichier .TXT ou .DOC ou ... [ par julien ] je voudrais permettre le téléchargement sur les postes clients de fichiers .txt ou .doc. pour l'instant quand on clique sur les liens, ils s'ouvrent d php : lire fichier txt, comparer heure et choix liens [ par drominik ] voila,j'ai dans un fichier txt, l'ip du visiteur et l'heure de sa visite,et j'aimerais a chaque visiteur pouvoir aller lire le fichier txt, et compare Ecrire en début d'un fichier texte [ par Psychomatt ] Bonjour,Voila donc le probleme, j'ai un fichier txt et chaque enregistrement se fait ligne par ligne. Lors d'un ajout, je veux que cet enregistrement Sauver le résultat d'une requête dans un fichier txt ??? [ par Melisback ] Bonjour, Surement une question simple, mais j'ai quelques petites difficultés.Je voudrais bien sauver le résultat d'une requête MySql effectuée par un Liste d'url dans un txt [ par Nestor ] salutje voudrais trouvé un code php ou java....ou autre, qui me permetré de stocké dans un fichier txt par exemple une liste de url avec url des banni recupérer contenu textearea ds fichier txt [ par kinooo ] Comment récupérer le contenu d'un textearea et le mettre ds un fichier txt. Edition de fichiers txt [ par ceeno ] Bonjour,voila, j'aimerais écrire dans un fichier texte entre 2 balises.Par exemple, prenons un fichier texte.txt qui contient :Je souhaite ajouter une afficher fichier txt dans textearea [ par kinooo ] Comment fait on pour afficher le contenu d'un fichier txt dans un texte area? afficher fichier txt dans textearea [ par kinooo ] Comment fait on pour afficher le contenu d'un fichier txt dans un texte area?


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.