Recherche dans une chaine de caractere

Recherche dans une chaine de caractere - PHP - Programmation

Marsh Posté le 14-03-2003 à 18:32:56    

Salut  
 
dans une chaîne de caractère, j'essai d'extraire un morceau de chaîne de caractère comprise entre deux chaînes de caractères de référence.  
 
ex:  
la chaîne: ebjsfb toto ce que je cherche titi ksjnknf titi dfg  
mot de référence de début : toto  
mot de référence de fin : titi  
résultat: ce que je cherche  
NB: je ne veux pas des mots de référence  
 
ce que j'ai fait:  
if(ereg("toto(.*)titi",$str,$sortie))  
echo $sortie[1];  
 
Le problème, il va chercher la dernière occurrence de ma chaîne de référence de fin, alors que je veux la première  
 
Merci

Reply

Marsh Posté le 14-03-2003 à 18:32:56   

Reply

Marsh Posté le 15-03-2003 à 01:20:51    

$sortie =preg_split("/(toto|titi)/",$str);
echo $sortie[1];
 
Exemple : http://www.surleau.org/tmp/preg_split.php
 
Doc : http://www.php.net/manual/fr/function.preg-split.php


Message édité par Mara's dad le 15-03-2003 à 01:26:31

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-03-2003 à 12:38:03    

En faite, j'ai un ami qui a développer un mini forum. J'ai déjà codé une fonction qui permet de transformer le code html entrer dans le message en texte, de mettre des smileys (sans etre gener par le ; en debut de smileys) et de transformer tous les caracteres speciaux (& < > ...) en code
 
Maintenant, je veux mettre des codes pour mettre du texte en gras, ...
je veux que la balise (elles sont entre crochet) de debut et de fin soient présente, dans le bonne ordre,  
 
voila ma solution, mais je me demande si on ne peut pas faire mieux:
 

Code :
  1. //le caractere vide au debut sert à éviter le cas ou le message commence par une balise
  2. while (($debut = strpos(" ".$Message,"" ))&&($fin = strpos($Message,"",$debut)))
  3.    $Message = substr_replace($Message,"<b>".substr($Message,$debut+2,$fin-$debut-2)."</b>",$debut-1,$fin-$debut+5);


 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed