[RESOLU] insérer une balise si la variable est trouvé

Mammouth du PHP | 643 Messages

04 janv. 2016, 21:54

Salut à tous.
Voilà mon pti pbm.
J'ai un script qui me permet d'afficher le descriptif du produit et dans ce descriptif j'ai le titre du produit j'aimerais insérer un <h2>.....</h2> pour encadrer ce titre qui est dans mon champ descriptif
<div class="product-description col-md-12"><p><?php if($ligne['description'] == NULL) { echo "Non renseigné";} else {echo stripslashes(ucfirst($ligne['description']));}?></p></div>
Je pensé quelque chose comme :
// insértion des balise h2 devant le titre
		$monh2 = $row['titre'];

		// construction des valeurs de remplacement
		$remplacementstitre= array_map(function ($h2) {
		   return "<strong>$h2</strong>";
		}, $monh2);
		
		// remplacement
		$ligne['description'] = str_replace($monh2, $remplacementstitre, $ligne['description']);
Mais apparament il y a un problème et je ne vois pas trop quoi ....

Mammouth du PHP | 881 Messages

05 janv. 2016, 00:04

Es-tu sûr que $ligne['description'] retourne NULL et non pas un texte vide ( '' ) ?

Tu pourrais aussi utiliser la notation ternaire plus compacte

Code : Tout sélectionner

<div class="product-description col-md-12"><p><?php echo ($ligne['description'] == NULL) ? "Non renseigné" : stripslashes(ucfirst($ligne['description'])); ?></p></div>
ou encore

Code : Tout sélectionner

<div class="product-description col-md-12"><p><?php echo (trim($ligne['description']) == '') ? "Non renseigné" : stripslashes(ucfirst($ligne['description'])); ?></p></div>
et si tu veux insérer ta balise h2, tu fais

Code : Tout sélectionner

<div class="product-description col-md-12"><p><?php echo (trim($ligne['description']) == '') ? "Non renseigné" : '<h2>'.stripslashes(ucfirst($ligne['description'])).'</h2>'; ?></p></div>
Soyez artisans de paix

Mammouth du PHP | 643 Messages

05 janv. 2016, 00:18

Salut à toi !
Je viens de trouver la réponse tt seul et c'est tt bête en +
// ----- Mise en forme h2
		$ligne['description'] = str_replace($ligne['titre'] ,'<h2>'.$ligne['titre'].'</h2>',$ligne['description']);