[PHP] str_replace() avec comptage
Résolu/Fermé
ten62
Messages postés
158
Date d'inscription
dimanche 22 juin 2008
Statut
Membre
Dernière intervention
5 avril 2011
-
7 juil. 2009 à 20:27
ten62 Messages postés 158 Date d'inscription dimanche 22 juin 2008 Statut Membre Dernière intervention 5 avril 2011 - 11 juil. 2009 à 19:28
ten62 Messages postés 158 Date d'inscription dimanche 22 juin 2008 Statut Membre Dernière intervention 5 avril 2011 - 11 juil. 2009 à 19:28
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
- Php?id=1 - Forum PHP
- Php natif - Forum PHP
- Retour à la ligne php ✓ - Forum PHP
5 réponses
Utilisateur anonyme
7 juil. 2009 à 23:26
7 juil. 2009 à 23:26
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; ?>
Utilisateur anonyme
7 juil. 2009 à 21:49
7 juil. 2009 à 21:49
EDIT->Oups désoler le code ne fonctionnait vraiment pas, je reposte quand j'ai quelque chose qui fonctionne
jeangilles
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
186
7 juil. 2009 à 22:24
7 juil. 2009 à 22:24
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++;
}
ten62
Messages postés
158
Date d'inscription
dimanche 22 juin 2008
Statut
Membre
Dernière intervention
5 avril 2011
23
7 juil. 2009 à 23:09
7 juil. 2009 à 23:09
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
ten62
Messages postés
158
Date d'inscription
dimanche 22 juin 2008
Statut
Membre
Dernière intervention
5 avril 2011
23
11 juil. 2009 à 19:28
11 juil. 2009 à 19:28
vraiment un super méga merci !