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 :

comportement bizarre de regex (recherche des élements de chaine qui sont entre cote ) ou erreur de règle ? [RegEx]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut comportement bizarre de regex (recherche des élements de chaine qui sont entre cote ) ou erreur de règle ?
    Bonjour,

    Je tourne en rond sur un mb_eregi pour isoler les éléments d'une string qui sont entre cote.

    C'est bizarre sur sur la chaine "e" la règle \"([^\"]*)\" marche alors que sur la chaine "é" cela ne marche plus. Je ne comprend pas bien pourquoi.

    Merci de votre aide si vous avez une explication ou une alternative à la règle que j'utilise qui me semble très simple.

    Voici un petit code de test de ce comportement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    function chercheEntreCote($regle,$string){
    	echo "mb_eregi(\"".addslashes($regle)."\",$string\",\$reg)";
    	if (mb_eregi($regle,$string,$reg)){	echo ("  trouve"); echo "<PRE>";print_r($reg);echo "</PRE>";
    	} else { echo ("  ne trouve pas");
    	}
    }
     
    $regle="\"([^\"]*)\"";
    chercheEntreCote($regle,"\"e\"");
    chercheEntreCote($regle,"\"é\"");
    ?>
    Une petite avancée: si je reprend les ancienne fonction erigi mais depréciée maintenant cela fonctionne.
    de plus si j'utilise mb_detect_encoding sur "e" je trouve ASCII et sur "é" UTF-8 encore ces problème d'encodage sans doute

  2. #2
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    vérifie que ton fichier est bien encodé en utf-8 sans BOM
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai modifié la propriété du petit script en php et modifié lle é qui avant changé d'affichage dans l'editeur. resultat du script:

    mb_eregi("\"([^\"]*)\"","e"",$reg) trouve
    Array(
        [0] => "e"
        [1] => e
    )
    mb_eregi("\"([^\"]*)\"","é"",$reg) trouve
    Array(
        [0] => "é"
        [1] => é
    )
    Maintenant la regle donne true dans les deux cas mais bonjour l'affichage ?
    Je vais essayer de poursuivre dans cette voie.
    un script php doit il toujours être en utf8 ?

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    ajoute en deuxième ligne de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    header ('Content-Type: text/html; charset=UTF-8');
    ...
    c'est conseillé de travailler en utf-8, cela te permet d'afficher dans n'importe que langue (même chinois, cyrilic...)
    et utf-8 est un encodage platform compatible (tu développez sous windows puis envoyer sur un serveur linux, utf-8 sera affiché de la même manière)
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    C'est parfait. En fait il faut que le script soit un fichier en utf_8, et que l'encodage de la sortie echo soit aussi en utf8
    Merci

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

Discussions similaires

  1. [RegEx] Regex : rechercher metacaractère dans une chaine
    Par Nicolas74100 dans le forum Langage
    Réponses: 4
    Dernier message: 22/05/2012, 19h01
  2. Réponses: 2
    Dernier message: 18/05/2010, 12h36
  3. Réponses: 3
    Dernier message: 25/01/2010, 10h29
  4. [JComboBox] rechercher des élements
    Par Garion dans le forum Composants
    Réponses: 20
    Dernier message: 24/08/2008, 22h23
  5. [Regex] Rechercher des *
    Par gregb34 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/05/2006, 22h15

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