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 :

Isoler un texte


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut Isoler un texte
    Bonjour,

    J'avoue débuter avec les expressions régulières et j'ai un petit soucis:

    J'ai un texte du genre :

    "Nom: Blabla
    Prenom: blabla, blabla
    Age:2157
    Résidence:chez moi"

    Je souhaite deux choses :

    1.remplacer les mots "Nom:", "Prenom:", "Age:" et "Rédence:" par des icônes et mettre en gras la partie suivant le ":"

    2.pouvoir isoler les mots suivants chacun des mots suscités par un lien cliquable... Avec le soucis qu'il peut y en avoir un, deux ou plus (séparés d'une virgule)

    Je pense que le premeir point est faisable avec les regex mais pour le second, j'ai des doutes...

    Si quelqu'un peut m'aider, j'en serai fort heureux!

    merci d'avance!

    cordialement

  2. #2
    Membre éprouvé Avatar de denissay
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 103
    Par défaut
    Bonjour,
    Si tu sais donner précisémment le résultat souhaités à partir de l'entrée donnée dans ton premier post, ça aidera beacoup à te donner la bonne réponse ;-)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    Alors en fait, je soufaite isoler le "titre" de ce qui suit les deux points pour les envoyer à une fonction qui traitera tout cela...

    En gros envoyer tous les truc du type titre:blabla vers une fonction

    function traitement_donnee(titre as string, blabla as string)

    et cela pour chaque couple :

    Nom:blabla
    prenom:blabla
    age:blabla

    etc...

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par défaut
    Quand tu parles de lien cliquable, pour la ligne Prenom: blabla, blublu, doit-il y avoir un lien pour blabla, blublu ou bien un lien pour blabla et un autre lien pour blublu?

    Sinon tu peux faire un truc comme ça:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <meta charset="UTF-8"/><pre>
    <?php
    $data = <<<'LOD'
    Nom: Dumontier
    Prénom: Jacques, François
    Age:43
    Résidence: 15, rue du Maréchal Joffre - 17540 Anais
    
    Nom: Wisniewski
    Prénom: Mireille
    Age:72
    Résidence: 8, rue des trois mâts - 92100 Boulogne
    LOD;
     
    function generateLink($value, $context) { // fonction bidon
        return '<a href="'. $value . '">' . $value . '</a>';
    }
     
    $icons = array('Nom'       => 'images/name.gif',
                   'Prénom'    => 'images/forname.gif',
                   'Age'       => 'images/age.gif',
                   'Résidence' => 'images/address.gif');
     
    $pattern = '~^(\pL++):\h*+(.++)~mu';
     
    $result = preg_replace_callback($pattern,
                                    function ($m) use ($icons) {
                                        return '<img src="' . $icons[$m[1]] . '"/> '
                                             . generateLink($m[2], $m[1]); 
                                    }, $data);
     
    echo htmlspecialchars($result);

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    [QUOTE=CosmoKnacki;7665132]Quand tu parles de lien cliquable, pour la ligne Prenom: blabla, blublu, doit-il y avoir un lien pour blabla, blublu ou bien un lien pour blabla et un autre lien pour blublu?

    Ce serait cliquable pour le ou les mots suivants, séparés d'une virgule...

    En fait, le soucis est surtout de trouver comment isoler les "titres" et les "mots" suivants les deux points, sachant que chaque ligne se termine par un saut de ligne...

    Je vais essayer ton script...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    JE débute avec les expression régulières...

    tu peux me décoder cette pattern?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '~^(\pL++):\h*+(.++)~mu';
    par avance merci!!

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Par défaut
    La ligne 26 me renvoie:
    Parse error: syntax error, unexpected T_FUNCTION in line 26
    J'avoue que je ne comprend pas vraiment la structure, bien que cela ai l'air aussi puissant... j'aurais betement fait un switch en listant les valeurs possibles... ou utilisé un tableau... mais la façon dont tu procèdes semble super chouette, mais je ne la comprends pas

  8. #8
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    Par défaut
    Ne t'inquiète pas, tu as cette erreur car tu utilises une version de PHP inférieur à la version 5.3. On peut solutionner ça, attend un peu.

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/10/2014, 17h29
  2. Réponses: 0
    Dernier message: 26/09/2014, 11h44
  3. [RegEx] Isoler du texte entre balises
    Par adgenodux dans le forum Langage
    Réponses: 11
    Dernier message: 30/03/2013, 19h45
  4. afficher du texte
    Par Mau dans le forum OpenGL
    Réponses: 10
    Dernier message: 24/06/2003, 15h31
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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