Remplacer un partie d'une var en php

Fermé
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 - Modifié par amine_marc le 25/04/2010 à 14:58
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 - 27 avril 2010 à 14:16
Bonjour, j'ai un chaine de caractère qui contient des balises <strong> et </strong>.
Je veux sélectionner les mots entre ces deux balises et les remplacer par des trous sous forme de zones de texte en éliminant les balises, pour afficher enfin une nouvelle chaine ($new_content) de caractère qui contient le texte de $content sans balises <strong> et </strong> et avec des trous.
J'ai pu sélectionner les mots entres les balises, mais je n'ai pas arrivé à les remplacer correctement par des trous; le pb est que la nouvelle chaine s'affiche plusieurs fois selon le nombre de balises <strong> et </strong> trouvant dans la variable $content.
Veuillez me trouver une solution, et voici une partie du code:

<?php
$tab = split("<strong>|</strong>", $content, $nb_occ);
$j=0;
foreach($tab as $elem)
{
if($j%2!=0)
{
$new_content=preg_replace($elem,"<input type='text' value='' name='".$elem."'>",$content);

}
$j++;
}
echo $new_content;
?>

Merci d'avance.
A voir également:

5 réponses

giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
25 avril 2010 à 14:10
Bonjour,

regardez si les fonctions explode et implode ne peuvent pas résoudre votre problème.
explode permet de mette une chaine sous forme de tableau en fonction d'un séparateur.
0
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
25 avril 2010 à 14:32
Merci pour ta réponse; mais le pb n'est au niveau de trouver les sous chaines, plutôt la répétition de la var $new_chaine +ieurs fois.
0
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
25 avril 2010 à 14:46
Est-ce qu'il y a d'autres solutions? Veuillez me dire...
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
Modifié par giheller le 26/04/2010 à 17:56
Bonsoir,

désolé mais je ne comprends pas.
répéter $new_chaine plusieurs fois où quand
$a="";
ici une boucle
$a .= $new_chaine ;
fin de boucle

$a contiendra la concaténation des new chaine calculée dans la boucle

mais je ne sais pas si cela correspond à vote problème.

Pour qu'il ait le moins de mécontents possible il faut toujours taper sur les mêmes.
(comme vous l'avez reconnu : proverbe shadocks)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
27 avril 2010 à 14:16
nn, je te remercie tt d'abord pour ta réaction;
mais le pb est maintenant résolu et oui, vraiment je dois utiliser la fct implode comme tu m'as dit, et la répétition c'est au niveau d'affichage de la chaine...
voici une partie du code corrigé maintenant:

<?php
$tab = split("<strong>|</strong>", $content);
foreach($tab as $key=>$elem) {
if($key%2!=0) {
$tab[$key]="<input type='text' value='' name='".$elem."'>";
}
}

$new_content=implode('', $tab);

?>
0