1
votes

Supprimer la balise

du contenu HTML

J'essaie d'afficher un paragraphe propre sur le site Web mais, à cause du

au milieu du contenu, je n'obtiens pas le résultat attendu. J'ai essayé ce qui suit, mais aucun d'entre eux n'a fonctionné et j'obtiens toujours

autour de mon contenu.
$story = "<p>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p><p>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>";


 1. $story = strip_tags($story, '<p>');
 2. $story=str_ireplace('<p>','',$story);
 3. $story=str_ireplace('</p>','',$story);
 4. $story = preg_replace('/<p\b[^>]*>(.*?)<\/p>/i', '', $story);

Ai-je manqué quelque chose dans mon code? Ma sortie attendue serait

Réponse: Lorem Ipsum est le texte factice standard de l'industrie depuis les années 1500, quand un imprimeur inconnu prit une galère de caractères et la brouilla pour en faire un livre de spécimens. Lorem Ipsum est le texte factice standard de l'industrie depuis les années 1500, quand un imprimeur inconnu a pris une galère de caractères et l'a brouillée pour en faire un livre de spécimens.


5 commentaires

Le $ story contient-il uniquement une balise HTML

et aucune autre balise HTML?


Si vous passez

comme deuxième argument à strip_tags () , vous dites à la fonction d ' autoriser cette balise, et non de la supprimer il. Si vous souhaitez supprimer toutes les balises, omettez simplement le deuxième argument. Si vous souhaitez conserver d'autres balises html, c'est celles que vous devez passer en second argument. Voici le manuel


Quel est votre résultat attendu?


@ vivek_23 J'ai une balise dans le contenu mais pour l'instant, je veux juste supprimer la balise

du contenu ($ story).


Copie possible de PHP: supprimer une balise spécifique de la chaîne HTML?


4 Réponses :


2
votes

Essayez de cette façon avec str_replace()

$result = strip_tags($story);

DEMO : https://3v4l.org/nllPP

OU avec strip_tags () pour supprimer toutes les balises, d'ailleurs avec cette méthode, vous pouvez spécifier allowable_tags

<?php
$story = "<p>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p><p>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>";
$result = str_replace(['<p>','</p>'],['',''],$story);
echo $result;
?>


4 commentaires

J'ai vu la démo qui fonctionne parfaitement mais je n'obtiens pas le même résultat dans mon code. Je récupère le caractère Unicode dans la variable $ story , est-ce que cela me pose un problème?


Chaque réponse que vous donnez fonctionne parfaitement ici: 3v4l.org/nllPP mais pas dans mon code.


jetez un œil ici stackoverflow.com/questions/1176904/...


J'ai regardé là-bas mais inutile. Et, oui, j'ai essayé avec le caractère Unicode en dehors de la boucle qui a fonctionné mais j'affiche $ story dans la boucle foreach et cela ne fonctionne pas.



2
votes

PHP a des fonctions intégrées pour supprimer les balises HTML d'une chaîne. Il vaut mieux utiliser strip_tags () plutôt que str_replace () , voici un exemple

     $story = "<p>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p><p>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>";
;
        $a = strip_tags($story);
        $b = strip_tags($story, "<strong><em>"); // can also pass the tags that you don't want to remove


0 commentaires

1
votes

Utilisez la fonction str_ireplace () .

$story = "<p>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p><p>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>";

echo $text=str_ireplace('<p>','',$story);

Démo: https://3v4l.org/W0Qeb


0 commentaires

1
votes
$story = "<p>Lorem Ipsum has been the industry's standard dummy text ever since the 
    1500s, when an unknown printer took a galley of type and scrambled it to make a 
    type specimen book.</p><p>Lorem Ipsum has been the industry's standard dummy text 
    ever since the 1500s, when an unknown printer took a galley of type and scrambled 
    it to make a type specimen book.</p>";

$story = strip_tags($story) ;
echo $story;
there is a built in function that removes all html tags in php. strip_tags()

0 commentaires