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 :

Trouver une ligne dans un fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de Kyti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 182
    Points : 59
    Points
    59
    Par défaut Trouver une ligne dans un fichier
    Bonjour,

    Je m'excuse d'avance de ma question très bête, mais je cherche comment trouver une ligne dans un fichier.

    J'ai ceci :
    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
     
            $repere = "<!-- #### REPERE #### -->";
            $imprim_file = fopen("trame.html", "r");
     
    	$ligne = fgets($imprim_file);
    	while ((!feof($imprim_file))&&($ligne != $repere)) {
    		[...]
    		$ligne = fgets($imprim_file);
    	}
     
            // code pour tester
    	if ($ligne == $repere){
    		echo "LIGNE TROUVEE";
    	}
    	else{
                    // fin du fichier atteint sans avoir trouvé la ligne
    		echo "LIGNE NON TROUVEE";
    	}
    En fait la ligne existe bien dans le fichier, mais il ne la trouve pas. Pourquoi ? Faut-il rajouter un caractère de fin de ligne ?

    Merci
    Kyti

  2. #2
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    je ne connais la syntaxe php, mais l'operateur pour comparer des chaines est bien '==' ou '!=' et pas eq?

    Autrement un truc qui peu gener ce sont les espaces/tabulation et caracteres de fin de lignes pour le format dos (\r\n) et unix (\n). bref tous les caracters non visible.


    il vaudrait peu etre mieux comparer avec une regexp. ou utiliser un stringcontains (si cela existe en php)
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  3. #3
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Pour ne pas s'embêter avec les retours à la ligne,
    il y a peut-être cette solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $fichier = file($imprim_file);
    $message = (in_array($repere,$fichier)) ? "Ligne trouvée" : "Ligne non trouvée";
    echo $message;
    Fred

  4. #4
    Membre du Club Avatar de Kyti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 182
    Points : 59
    Points
    59
    Par défaut
    J'ai rajouté \r\n à la fin de ma variable repere, et là c'est bon, il trouve la ligne ! Merci !!!
    Kyti

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Alternative : virer les retours à la ligne et autres joyeusetés dans la ligne récupérée en utilisant trim
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FSO] Effacer une ligne dans un fichier
    Par Johnbob dans le forum ASP
    Réponses: 4
    Dernier message: 30/05/2007, 16h23
  2. Trouver une ligne dans un fichier d'adresses
    Par geok120 dans le forum C
    Réponses: 12
    Dernier message: 04/05/2007, 12h09
  3. [VBA] insérer une ligne dans un fichier excel
    Par cokinoumasterflash dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2005, 18h52
  4. [langage] Effacer une ligne dans un fichier
    Par sebi77 dans le forum Langage
    Réponses: 2
    Dernier message: 01/01/2005, 12h43
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

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