Supprimer </div> balise HTML à partir d'une chaîne de caractères en PHP
Selon le poste ici, le code ci-dessous peut supprimer la balise HTML, tels que <div>
. Mais j'ai trouvé que la balise de fin </div>
restent dans la chaîne.
$content = "<div id=\"header\">this is something with an <img src=\"test.png\"/> in it.</div>";
$content = preg_replace("/<div[^>]+\>/i", "", $content);
echo $content;
J'ai essayé quelque chose en dessous, mais toujours pas de travail, comment puis-je résoudre ce problème?
$content = preg_replace("/<\/div[^>]+\>/i", "", $content);
$content = preg_replace("/<(/)div[^>]+\>/i", "", $content);
Grâce
OriginalL'auteur Charles Yeung | 2012-03-13
Vous devez vous connecter pour publier un commentaire.
La balise de fin n'a rien entre la div et la
>
, donc au lieu d'essayer quelque chose comme:Cela permettra d'éliminer les modèles de la forme:
?
à l'intérieur de/<\/?div[^>]*\>/i
l' ? signifie que / ce qui vient avant, c'est facultatif, c'est pourquoi il correspond à la fois à <div> et </div>
merci il la façon intelligente de supprimer
<div>
et</div>
OriginalL'auteur Rowland Shaw
changer de
"/<[\/]*div[^>]*>/i"
vous êtes les bienvenus.. vous pouvez cocher la réponse correcte)...
OriginalL'auteur SolidSnake
Si vous pouvez garantir le HTML étant passé en sera valide et structuré d'une certaine façon, vous devriez être OK avec la regex.
En général, cependant, il est préférable d'éviter d'utiliser des regex pour travailler avec HTML, car le balisage peuvent être variées et de désordre. Au lieu de cela, essayez d'utiliser une bibliothèque comme DOMDocument - il gère tout le désordre pour vous.
Avec DOMDocument vous ferais quelque chose comme:
OriginalL'auteur Dan Blows
supprimer tous les
OriginalL'auteur user3834265