IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Connaitre la position d'une chane de caractère dans un fichier


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Points : 177
    Points
    177
    Par défaut Connaitre la position d'une chane de caractère dans un fichier
    Bonjours;
    j'ai un fichier xml qui resemble à quelque chose comme sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    				<INFOCENTRE_FD>
    		<FOND_DOC>
    				<INFO_VER_ID>2481</INFO_VER_ID>
    				<INFO_ID>2481</INFO_ID>
    				<EVT_ID>0</EVT_ID>
    				<INFO_DATE_CREATION>16-12-2009</INFO_DATE_CREATION>
    				<INFO_DATE_MODIFCATION></INFO_DATE_MODIFCATION>
    				<INFO_NOM>[Messagerie] VOIP</INFO_NOM>
    				<INFO_DESC><![CDATA[ ]]></INFO_DESC>
    				<INFO_TRAITE>n</INFO_TRAITE>
    				<INFO_DIFFEREE>n</INFO_DIFFEREE>
    				<INFO_STATUT>1</INFO_STATUT>
    				<CRITERE><ITEM><CRITERE_LIB>Priorité</CRITERE_LIB><CRITERE_VALEUR>2</CRITERE_VALEUR></ITEM><ITEM><CRITERE_LIB>Interne/Externe</CRITERE_LIB><CRITERE_VALEUR>Interne</CRITERE_VALEUR></ITEM><ITEM><CRITERE_LIB>creitere  table evttype 'ejt</CRITERE_LIB><CRITERE_VALEUR>Incident VOIP</CRITERE_VALEUR></ITEM><ITEM><CRITERE_LIB>critere impact</CRITERE_LIB><CRITERE_VALEUR>Indisponible</CRITERE_VALEUR></ITEM><ITEM><CRITERE_LIB>exploitant</CRITERE_LIB><CRITERE_VALEUR>SMC MS IP</CRITERE_VALEUR></ITEM></CRITERE>
    				<INFO_CONTENU><![CDATA[]]></INFO_CONTENU>
    			</FOND_DOC>
    				</INFOCENTRE_FD>
    et je veux me positionner juste avant la balise </INFOCENTRE_FD> pour une eventuelle mise à jours. Moi j'ai une solution qui consiste à récuperer le contenu du fichier xml dans une variable avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $lecture 	= fread($fp,  filesize($file));
    puis chercher la position de la chaine de la balise et puis me positionner dans le fichier à cette position avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fseek($handle,$pos);
    le problème c'est que cette solution marche chez moi mais ne marche pas chez mon client je ne sais pas pourquoi.
    Alors si il y a quelqu'un qui peut me montrer comment me positionner directement dans un fichier sans avoir besoin à récuperer le contenu dans une variable; merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par islyoung2 Voir le message
    Alors si il y a quelqu'un qui peut me montrer comment me positionner directement dans un fichier sans avoir besoin à récuperer le contenu dans une variable; merci
    Euh, c'est pourtant ce que vous faites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lecture 	= fread($fp,  filesize($file));
    Un problème de blancs (sauts de ligne de plate-formes différentes ou tabulations/espaces) ? Problème d'encodage éventuellement (caractères multioctets) ? Et avec un code incomplet, difficile de dire.

    Mais il serait bien plus simple et fiable, surtout, de le traiter comme un document XML (suivant le contexte et s'il n'est pas trop volumineux).

  3. #3
    Membre habitué Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Points : 177
    Points
    177
    Par défaut
    Citation Envoyé par julp Voir le message
    Euh, c'est pourtant ce que vous faites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lecture 	= fread($fp,  filesize($file));
    Un problème de blancs (sauts de ligne de plate-formes différentes ou tabulations/espaces) ? Problème d'encodage éventuellement (caractères multioctets) ? Et avec un code incomplet, difficile de dire.

    Mais il serait bien plus simple et fiable, surtout, de le traiter comme un document XML (suivant le contexte et s'il n'est pas trop volumineux).
    Merci pour ta reponse, mais c'est ce que je disais que sa ne marche pas chez mon client cette solution (il est sous linux c'est tous ce que je peut dire) alors si vous avez une autre aproche que celle la merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    ceci : http://fr.php.net/manual/fr/book.simplexml.php te simplifierait grandement la vie
    Pourfendeur de singletons en croisade

  5. #5
    Membre habitué Avatar de islyoung2
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations forums :
    Inscription : Juin 2008
    Messages : 236
    Points : 177
    Points
    177
    Par défaut
    Citation Envoyé par Petibidon Voir le message
    ceci : http://fr.php.net/manual/fr/book.simplexml.php te simplifierait grandement la vie
    Merci pour votre réponse mais sa ne peut pas m'aider parsque pour moi les balise elle sont déjas prètes je les récupère d'un autre script, ce qui fais que mon fichier je le traite comme un simple fichier texte seulement je veux me positionner juste avant la dernière balise qui est la balise de fermeture, tous sa sans avoir besoin à récupèrer le contenu dans une variable

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/01/2013, 19h17
  2. Position d'une chaîne de caractères dans un fichier
    Par laloupiote dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 07/01/2012, 11h26
  3. Réponses: 0
    Dernier message: 19/01/2009, 10h00
  4. Retouver une chaîne de caractère dans un fichier
    Par thierrykammi dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 26/09/2008, 09h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo