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 05/04/2007, 02h12   #1
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2004
Messages : 78
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2004
Messages : 78
Points : 34
Points : 34
Par défaut preg_replace et tableau en sortie

Bonsoir!

j'essaie depuis un long moment maintenant de récupérer toute les occurences trouvées par preg_replace dans ma variable.

j'utilise ceci:

Code :
$ep_titre[] = preg_replace('!^.*<eptitre>(.*)</eptitre>.*$!isU','$1',$string);
J'utilise cette portion pour récupérer plusieurs infos, mais dans le cas que je montre, il y a une dizaine de fois les balises <eptitre> </eptitre> à différents endroit de la chaîne $string.
Cependant, seul le premier résultat m'est renvoyé...

quelqu'un aurait une idée?

Merci beaucoup, DD.
ddelec24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 09h50   #2
Futur Membre du Club
 
Inscription : avril 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 17
Points : 19
Points : 19
Par défaut Réponse

Bonjour,

Pourquoi preg_replace tu veus remplaçer des occurençes ou les trouver ?

Si tu veus que les trouver pas dure tu fais ça :

Code php :
1
2
3
4
5
6
7
8
 
<?php
if(preg_match_all('<eptitre>(.*)</eptitre>isU',$string,$Tableaux)) {
foreach($Tableaux[1] as $Reponse) {
echo $Reponse.'<br>';
}
}
?>

Ce code va te faire un echo de toutes les occurence entre <eptitre> </eptitre>...
DR_KILLER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 11h52   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
preg_replace renvoie la chaîne $string modifiée où dans votre cas vous ne devriez récupérer que le contenu de ces balises dans le tableau $ep_titre à l'indice zéro et rien d'autres dans celui-ci. Si vous cherchez uniquement à obtenir les parties qui y correspondent (sans remplacements) vous avez fait erreur sur la fonction comme indiqué par DR_KILLER.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 12h53   #4
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2004
Messages : 78
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2004
Messages : 78
Points : 34
Points : 34
Effectivement, je ne savais pas comment faire une recherche et j'avais trouvé un exemple avec preg_replace, meme si je trouvais ca étrange ca fonctionnait

bref, ton code m'a bien aidé, voici mon résultat:

Code :
1
2
3
  preg_match_all('|<eptitre>([^[]+)</eptitre>|',$topic,$tempeptitre);
  $nbeptitre = count($tempeptitre[1]);
  $tabeptitre = $tempeptitre[1];
ca marche impec je peux manipuler mon tableau $tabeptitre qui contient ce que je veux

Merci beaucoup et bonne continuation! DD.
ddelec24 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 01h28.


 
 
 
 
Partenaires

Hébergement Web