Extractions dans une chaine avec un séparateur [Résolu]

Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
- - Dernière réponse : cs_hygieaa
Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
- 6 mai 2010 à 18:39
Bonjour à toutes et à tous..

Je suis particulièrement 'sec' en PHP alors j'ai besoin de ceux qui connaissent bien...

Jusqu'à maintenant j'ai réussi à me dépanner en glanant des codes source de ci de là.. mais pour cela je ne trouve rien..

Mon problème est le suivant..

Je possède un fichier dans lequel il existe une chaine de caractères(ce sont des noms) séparés par un ';'j'extraie cette chaîne et je l'appelle $listenoms Ex: "Dupont;Durand;Dulouis;)

Et je possède une autre chaîne, dans laquelle il peut figurer un des noms contenus dans la chaine $listenoms. Je l'appelle $message. EX: "Bonjour, je suis Mr Durand"

Je souhaite faire une boucle qui extrait un à un tous les noms de la chaîne $listenoms, vérifie si ce nom apparait dans la chaine $message et dans ce cas je fais quelque chose que j'appelle 'Action'

Dans le cas présent va faire un premier test avec 'Dupont' qui ne donne rien, puis un deuxieme test avec 'Durand' et là je fais 'Action'

Je me tiens à votre disposition, et je compte sur vous tous.. Merci alain
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
195
Date d'inscription
dimanche 18 mars 2007
Dernière intervention
11 juillet 2015
3
Merci
salut:
<?php
$listenom = "Dupont;Durand;Dulouis";
$str = "Bonjour, je suis Mr Durand" ;
//on transforme la chaine liste nom en tableau
$tablistenom = split(";",trim($listenom));

for ($i = 0; $i < count($tablistenom); $i++) {
    if( eregi("".$tablistenom[$i]."",$str) ) {
        //chaine trouver ton traitement ici
    } else {
  //chaine nom trouver ton autre traitement
}
}
?>

j'espere que ceci te vas

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 118 internautes nous ont dit merci ce mois-ci

Commenter la réponse de devil_may_cry
Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
0
Merci
Bonjour Devil_May_Cry

Merci 1000 fois d'avoir répondu si vite!!!

Je teste ce soir ce PHP, et je pense qu'il n'y aura pas de problème

Je te dis KOI(comme dans les ch'ti), puisque je suis du nord..

Cordialement Alain
Commenter la réponse de cs_hygieaa
Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
0
Merci
Bonjour, comme je suis curieux.. je me suis empressé de tester..

J'ai rencontré un premier probleme que j'ai corrigé de suite, $listenom n'avait pas de 'S' à la fin j'en ai donc mis un

2eme PB que je ne sais résoudre

Voici la réponse du serveur...
Apparemment le tableau est vide..!!!

Warning: eregi(): REG_EMPTY

Et là je ne sais pas!!!

Merci.. alain
Commenter la réponse de cs_hygieaa
Messages postés
195
Date d'inscription
dimanche 18 mars 2007
Dernière intervention
11 juillet 2015
0
Merci
bonjour est-ce que t'a copier exactement le code parce que chez moi ca marche a merveille ?
mais en effet il y'a une autre chose dans le fichier dans lequel se trouve Dupond;Durant etc.. le dernier element ne doit pas etre suivit de ";"
Commenter la réponse de devil_may_cry
Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
0
Merci
Woui pour le code..

Mais moi j'ai un ';' à la fin..

Alors je le retire et te dit ce qu'il en est à++ alain
Commenter la réponse de cs_hygieaa
Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
0
Merci
Bon... ce qu'il en est..
Je n'ai plus de message d'erreur...C'est dejà ça

Mais le PHP ne fonctionne pas, il ne trouve apparemment pas l'ocurence...

Et là je ne sais pas.... J'ai tout vérifié..
Commenter la réponse de cs_hygieaa
Messages postés
195
Date d'inscription
dimanche 18 mars 2007
Dernière intervention
11 juillet 2015
0
Merci
poste les ligne de code qui traite cette partie
Commenter la réponse de devil_may_cry
Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
0
Merci
Bonjour

Ne cherche pas je crois avoir trouvé!!

Dans ton PHP le contenu à tester s'appelle $str et dans mon PHP il s'appelle $msg

JE TESTE ET TE DIT CE QU'IL EN EST A++ ALAIN
Commenter la réponse de cs_hygieaa
Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
0
Merci
Bingo...

c'était ça..le coup de $str et $msg

Je me disais quand même sur 3 lignes de PHP..

1000 Fois merci, Tout fonctionne parfaitement

Amitiés alain
Commenter la réponse de cs_hygieaa
Messages postés
195
Date d'inscription
dimanche 18 mars 2007
Dernière intervention
11 juillet 2015
0
Merci
ok bonne journé
Commenter la réponse de devil_may_cry
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
21
0
Merci
Salut Alin "ch'ti" du Nord et Devil,

Juste de passage :
La fonction eregi est dépréciée, elle génère une erreur à partir de PHP 5.3 et sera sans doute supprimée à l'avenir.
Il est préférable d'utiliser preg_match, mais l'emploi d'une regex pour ce genre de chose est un peu superflu.

Pourquoi ne pas faire simplement :
$str = 'Bonjour, je suis Mr Durand';
$aPattern = explode(';', file_get_contents('Ton_Fichier'));
foreach ($aPattern as $v) {
    if (stripos($str, $v)) {
        // action
    }
}


Cordialement,

Kohntark -
Commenter la réponse de kohntark
Messages postés
195
Date d'inscription
dimanche 18 mars 2007
Dernière intervention
11 juillet 2015
0
Merci
efficace comme methode
Commenter la réponse de devil_may_cry
Messages postés
17
Date d'inscription
vendredi 17 octobre 2003
Dernière intervention
11 mai 2010
0
Merci
Merci bien vivement,

Je teste ce soir..

A++ alain pour des nouvelles du PHP
Commenter la réponse de cs_hygieaa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.