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

cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention - 5 mai 2010 à 14:38 - Dernière réponse : cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention
- 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
devil_may_cry 195 Messages postés dimanche 18 mars 2007Date d'inscription 11 juillet 2015 Dernière intervention - 6 mai 2010 à 04:00
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

Merci devil_may_cry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de devil_may_cry
cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention - 6 mai 2010 à 08:18
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
cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention - 6 mai 2010 à 09:03
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
devil_may_cry 195 Messages postés dimanche 18 mars 2007Date d'inscription 11 juillet 2015 Dernière intervention - 6 mai 2010 à 09:11
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
cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention - 6 mai 2010 à 09:28
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
cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention - 6 mai 2010 à 09:42
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
devil_may_cry 195 Messages postés dimanche 18 mars 2007Date d'inscription 11 juillet 2015 Dernière intervention - 6 mai 2010 à 09:46
0
Merci
poste les ligne de code qui traite cette partie
Commenter la réponse de devil_may_cry
cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention - 6 mai 2010 à 09:47
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
cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention - 6 mai 2010 à 09:51
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
devil_may_cry 195 Messages postés dimanche 18 mars 2007Date d'inscription 11 juillet 2015 Dernière intervention - 6 mai 2010 à 09:54
0
Merci
ok bonne journé
Commenter la réponse de devil_may_cry
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 6 mai 2010 à 17:15
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
devil_may_cry 195 Messages postés dimanche 18 mars 2007Date d'inscription 11 juillet 2015 Dernière intervention - 6 mai 2010 à 17:33
0
Merci
efficace comme methode
Commenter la réponse de devil_may_cry
cs_hygieaa 17 Messages postés vendredi 17 octobre 2003Date d'inscription 11 mai 2010 Dernière intervention - 6 mai 2010 à 18:39
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.