Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/02/2006, 18h08   #1
Invité régulier
 
Inscription : juillet 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 43
Points : 7
Points : 7
Envoyer un message via MSN à Smash34
Par défaut Motif, ereg, preg_rep... AFFICHER RESULTATS !!!

bonjour,
j'aimerai chercher un motif ds une chaine mais juste afficher les résultats !!
pas remplacer par autre chose !!
je trouve pas comment faire !
exemple :
Code :
1
2
3
4
 
$lien = "eferf [LIEN url=http://www.phpinfo.net/]Cliquez ici[/LIEN] dfdv fdv [LIEN url=http://www.jose.fr/]Cliquez ici[/LIEN] blablabla";
 
echo preg_replace('/(\[LIEN url=)([^\]]*)\](.*?)(\[\/LIEN\])/', "<A href='\\2'>\\3</A>", $lien);
le lien contient une url entre balises, là avec preg_replace je change le lien entre balises [LIEN][/LIEN] par un lien cliquable.... mais je voudrais afficher d'abord toutes les occurences du motif trouvé, avant de les supprimer.
ya rien qui peut juste afficher tous les [LIEN][/LIEN] k'il a trouvé ? sans les remplacer !!!

avec un mot simple genre "bonjour" c facile, mais avec une chaine, impossible de trouver...
merci de votre aide ![/code]
Smash34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2006, 18h12   #2
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 771
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 771
Points : 14 296
Points : 14 296
regardes eregi
http://www.php.net/manual/fr/function.eregi.php
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2006, 18h16   #3
Invité régulier
 
Inscription : juillet 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 43
Points : 7
Points : 7
Envoyer un message via MSN à Smash34
oui mais ça, ca teste si il y a la chaine, et si ele est (test avec if) on retourne une String toute prete.
moi je voir si mon motif repere un truc. et afficher chaque occurence détectée du motif.
^^.... jtrouve pas comment faire
Smash34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2006, 18h21   #4
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 771
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 771
Points : 14 296
Points : 14 296
dsl, j'ai mal lu

Citation:
ya rien qui peut juste afficher tous les [LIEN][/LIEN] k'il a trouvé ? sans les remplacer !!!

regardes explode


Code :
1
2
3
4
5
6
7
 
$raw = //ton texte
 
if (eregi("<section>(.*)</section>",$raw,$rawsection)) {
      $section = explode("<section>", $rawsection[0]);
      $nb = count($section);
}
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2006, 18h33   #5
Invité régulier
 
Inscription : juillet 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 43
Points : 7
Points : 7
Envoyer un message via MSN à Smash34
Warning: eregi() [function.eregi]: REG_BADRPT

if (eregi("<section>(/(\[LIEN url=)([^\]]*)\](.*?)(\[\/LIEN\])/)</section>",$raw,$rawsection)) {


avec mon motif... lol
Smash34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2006, 18h57   #6
Invité régulier
 
Inscription : juillet 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 43
Points : 7
Points : 7
Envoyer un message via MSN à Smash34
ah peutetre avec preg match all....

Code :
1
2
3
4
5
6
7
8
 
$raw = " eferf [LIEN url=http://www.phpinfo.net/]Cliquez ici[/LIEN] dfdv fdv [LIEN url=http://www.jose.fr/]Cliquez ici[/LIEN]";
preg_match_all("/(\[LIEN url=)([^\]]*)\](.*?)(\[\/LIEN\])/",$raw,$matches);
$nb=0;
foreach ($matches as $val)
{echo $val[$nb]; 
$nb++;
}

ça m'affiche :
[LIEN url=http://www.phpinfo.net/]Cliquez ici[/LIEN][LIEN url=

au lieu de :
[LIEN url=http://www.phpinfo.net/]Cliquez ici[/LIEN][LIEN url=http://www.jose.fr/]Cliquez ici[/LIEN]
...?!



EDIT :

Solution :


$raw = " eferf [LIEN url=http://www.phpinfo.net/]Cliquez ici[/LIEN] dfdv fdv [LIEN url=http://www.jose.fr/]Cliquez ici[/LIEN]";
preg_match_all("/(\[LIEN url=)([^\]]*)\](.*?)(\[\/LIEN\])/",$raw,$out);
$nb=count($out[0]);
for($i=0;$i<$nb;$i++)
{
echo htmlentities($out[0][$i]).'<br/>'; }
Smash34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h58.


 
 
 
 
Partenaires

Hébergement Web