[PHP] str_replace() avec comptage
Résolu
ten62
Messages postés
158
Date d'inscription
Statut
Membre
Dernière intervention
-
ten62 Messages postés 158 Date d'inscription Statut Membre Dernière intervention -
ten62 Messages postés 158 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila, j'ai un problème que je vais illustrer par un exemple tout simple :
Dans un document, j'ai plusieurs fois le mot "rouge" par exemple,
je veux les remplacer par rouge1, rouge2, rouge3, etc ...
Et je ne pense pas que ce soit possible avec un str_replace() ...
Quelqu'un a-t-il une idée svp ?
Merci bcp !
Voila, j'ai un problème que je vais illustrer par un exemple tout simple :
Dans un document, j'ai plusieurs fois le mot "rouge" par exemple,
je veux les remplacer par rouge1, rouge2, rouge3, etc ...
Et je ne pense pas que ce soit possible avec un str_replace() ...
Quelqu'un a-t-il une idée svp ?
Merci bcp !
A voir également:
- [PHP] str_replace() avec comptage
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Comptage de pas gratuit - Télécharger - Sport
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
5 réponses
trouvé !
a toi d'ajouter la regex pour les liens ;)
EDIT :
bon dans mon élan:
<?php $str = "rouge blablablablabla rouge blablablablabla rouge encore et re rouge "; $nbr_words = substr_count($str, 'rouge '); for($i=1; $i<=$nbr_words; $i++){ $str = preg_replace('/rouge /', 'rouge'.$i.' ', $str, 1); } echo $str; ?>
a toi d'ajouter la regex pour les liens ;)
EDIT :
bon dans mon élan:
<?php $str = "https://www.google.com/?gws_rd=ssl blablablablabla http://www.site.com/ blablablablabla http://www.resite.com"; $nbr_words = substr_count($str, 'http://www'); for($i=1; $i<=$nbr_words; $i++){ $str = preg_replace('#http://www.[a-z0-9._/-]+#i', 'http://site.com/page.php?numero='.$i.'&url=', $str, 1); } echo $str; ?>
EDIT->Oups désoler le code ne fonctionnait vraiment pas, je reposte quand j'ai quelque chose qui fonctionne
Tu devrais aller voir du coté de preg_replace
en effet tu peux lui passer dans un parametre le nombre max d'occurences à remplacer (tu mettrais donc 1 dans ton cas)
et tu fais une boucle : tant que ta chaine initiale est différente de la chaine apres le preg_match, tu incrémentes un variable
ca donnerai quelquechose comme ca :
$i=1;
$letexte = '...';
$lachainearemplacer = 'rouge '; // pas oublier l'espace à la fin sinon ca va continuer à boucler ^^
while($letexte != preg_replace("/$lachainearemplacer/" ,$lachainearemplacer.$i.' ' , $letexte, 1){
$i++;
}
en effet tu peux lui passer dans un parametre le nombre max d'occurences à remplacer (tu mettrais donc 1 dans ton cas)
et tu fais une boucle : tant que ta chaine initiale est différente de la chaine apres le preg_match, tu incrémentes un variable
ca donnerai quelquechose comme ca :
$i=1;
$letexte = '...';
$lachainearemplacer = 'rouge '; // pas oublier l'espace à la fin sinon ca va continuer à boucler ^^
while($letexte != preg_replace("/$lachainearemplacer/" ,$lachainearemplacer.$i.' ' , $letexte, 1){
$i++;
}
Merci mais ça ne fonctionne pas ..
Plus concrètement, je voudrait remplacer tout les liens de ma page, en y ajoutant juste après le href=" ceci :
http://site.com/page.php?numero=1&url=
http://site.com/page.php?numero=2&url=
http://site.com/page.php?numero=3&url=
http://site.com/page.php?numero=4&url=
Une idée ?
Merci bcp !
Plus concrètement, je voudrait remplacer tout les liens de ma page, en y ajoutant juste après le href=" ceci :
http://site.com/page.php?numero=1&url=
http://site.com/page.php?numero=2&url=
http://site.com/page.php?numero=3&url=
http://site.com/page.php?numero=4&url=
Une idée ?
Merci bcp !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question