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 :

PHP change des caractères


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 36
    Points
    36
    Par défaut PHP change des caractères
    Bonjour,

    J'ai un fichier texte contenant plusieurs ligne, qui liste le contenue de divers dossier sur mon disques dur.

    Chaque dossier est dans un bloque qui ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ======================
    E:\D\Dossier 1
    ======================
    Fichier 1
    Fichier 2
     
    ===================
    E:\D\Dossier 2
    ===================
    Fichier 1
    Fichier 2
    Je veux grace a une page PHP, lister seulement le contenu de ce qui est entre les =======
    Grace aux expression régulière j'ai réussit à liste ce contenu

    Mon problème est que j'ai des lignes qui ressemble à : E:\#\1125 (1999), et dans ma page, sa sort comme ça : E:\#J5 (1999)
    Donc il semble remplacer le 2eme \ et le 1125 par J5

    Est-ce qu'il y a moyen de forcer php à sortir la ligne tel quel, sans rien modifier ?

    Aussi, comme j'ai plusieurs disques, il se peut que le E: change pour F:, donc je vais devoir mettre 2 vérifications d'expression régulière, car de la manière que j'ai réussit à le faire, est de sortir chaque ligne qui commence par E:
    Le problème est que le nombre de signe ===== est différent en fonction de la longueur du dossier.
    Donc a quoi ressemblerait une expression régulière qui permettrais de ramasser le texte inclus entre les 2 lignes de "===" mais qui sont de grandeur variables ?
    PunkMetal

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Utilise ' au lieu de " quand tu affiches ta chaine.
    La séquence "\nombre" est interpretée comme une lettre en notation octal.

    Pour la capture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('#=+\r\n(.+)\r\n=+#U', $chaine, $output);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    Pour l'affichage, sa fonctionne maintenant, merci.

    Pour ce qui est de la capture, la mon code ne récupère plus rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match_all('#=+\r\n(.+)\r\n=+#U',$str,$match);
    Un exemple du contenu de $str :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ========================================
    E:\#\1125 (2007) Victims Of Forgetting\
    ========================================
    !Moros 1125 - 01 - Intro.mp3  ::INFO:: 442Kb
    !Moros 1125 - 02 - Respect For.mp3  ::INFO:: 2.30Mb
    !Moros 1125 - 03 - Victims Of Forgetting.mp3  ::INFO:: 2.74Mb
    !Moros 1125 - 04 - Broken Wings.mp3  ::INFO:: 1.49Mb
    !Moros 1125 - 05 - Rotten World.mp3  ::INFO:: 2.35Mb
    !Moros 1125 - 06 - 1125crew.mp3  ::INFO:: 2.72Mb
    !Moros 1125 - 07 - Around You.mp3  ::INFO:: 2.14Mb
    Plusieurs bloc de ce genre.
    Donc je veux récupérer la ligne qui est entre les 2 séries de "==="
    PunkMetal

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Enlève les \r
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    Wow, tout fonctionne.

    Je vais devoir vraiment apprendre pleinement les expressions regulieres, sa semble tellement puissant ce qu'on peut faire.

    Encore une fois, merci.
    PunkMetal

  6. #6
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Il faut aussi enlever le modificateur U qui n'est pas nécessaire et peut avoir des effets désastreux sur les performances de la pattern. https://regex101.com/r/wS6qC1/1
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/07/2010, 21h52
  2. Réponses: 3
    Dernier message: 15/02/2008, 18h19
  3. Change l'encodage des caractère sous Debian 4.0
    Par ThitoO dans le forum Administration système
    Réponses: 1
    Dernier message: 05/02/2008, 18h55
  4. [PHP-JS] Encodage des caractères
    Par 123quatre dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2007, 16h14
  5. Réponses: 2
    Dernier message: 07/09/2007, 13h26

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