J'ai de la ficelle:
<p justify;"="">Verslo centrai Lietuvos nekilnojamojo turto plėtros asociacijos konkurse ...</p>
et veulent vouloir enlever la balise
<p justify;"=""></p>
mon code:
$content = strip_tags($text, '<p>');
mais je reçois une chaîne vide: string(0) ""
, que fais-je de travers?
Essayez de le dire comme ça
$content = strip_tags($text);
Ou vous pouvez le faire avec une expression régulière comme celle-ci:
$content = preg_replace('/<[^>]*>/', '', $text);
Par cette $content = strip_tags($text, '<p>');
, vous autorisez la balise <p>
dans la chaîne.
Pour plus d'informations, voir le lien http://php.net/manual/en/function.strip-tags.php
Comme le code HTML est mal formaté, vous devez probablement écrire votre propre expression rationnelle pour supprimer les balises ou nettoyer le code HTML avant de tenter de supprimer les balises.
Vous pouvez essayer ceci pour supprimer tout ce qui "ressemble" à un tag:
$str = preg_replace("/<.*?>/", " ", $str);
Cela supprimera tout - tags, ascii, sauts de ligne mais texte pur:
strip_tags(preg_replace('/<[^>]*>/','',str_replace(array(" ","\n","\r"),"",html_entity_decode($YOUR_STRING,ENT_QUOTES,'UTF-8'))));
Puisque votre HTML n'est pas correctement formaté, vous pouvez choisir une approche preg_replace()
:
$text = '<p justify;"="">Verslo centrai Lietuvos nekilnojamojo turto plėtros asociacijos konkurse ... </p>';
$content = preg_replace('/<[^>]*>/', '', $text);
var_dump($content);
// string(108) "Verslo centrai Lietuvos nekilnojamojo turto plėtros asociacijos konkurse ... "
Sur strip_tags () docs il dit: Puisque strip_tags () ne valide pas le code HTML, des balises partielles ou brisées peuvent entraîner la suppression de plus de texte/de données que prévu.
Le deuxième paramètre est également pour $allowable_tags
.
Cela remplacera toutes les balises HTML, https://regex101.com/r/jM9oS4/4
preg_replace('/<(|\/)(?!\?).*?(|\/)>/',$replacement,$string);