Remplacer un partie d'une var en php

amine_marc Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   -  
amine_marc Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   -
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 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention   2
 
Est-ce qu'il y a d'autres solutions? Veuillez me dire...
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
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   Statut Membre Dernière intervention   2
 
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