Exemple d'analyse de strip_tags() en php qui filtre uniquement une certaine balise dans la chaîne

黄舟
Libérer: 2023-03-17 18:32:02
original
2560 Les gens l'ont consulté

Nous savons tous que la fonction php strip_tags() est utilisée pour filtrer les balises html, php et xml dans les chaînes. Cette fonction ne peut conserver que les balises html souhaitées. Mais la balise html spécifiée ne peut pas être filtrée, alors comment filtrer la balise html spécifiée ? Aujourd'hui, nous allons vous présenter une introduction détaillée à strip_tags() en PHP pour filtrer uniquement une certaine balise dans la chaîne !

php supprime les balises html spécifiées dans la chaîne. Nous ne pouvons pas utiliser la fonction strip_tags() car cette fonction ne peut conserver que les balises html souhaitées, telles que :

strip_tags($string); //去掉$string字符串中所以的html标签.
strip_tags($string,&#39;<div><img><em>&#39;); //去掉除了<div><img><em>以外的所有标签,即保留字符串中的div、img、em标签。
Copier après la connexion

Pour réaliser la suppression. Pour la balise html spécifiée, nous ne pouvons écrire une fonction que nous-mêmes. La fonction est la suivante :

function strip_only_tags($str, $tags, $stripContent = FALSE) { 
  $content = &#39;&#39;; 
 
  if (!is_array($tags)) { 
    $tags = (strpos($str, &#39;>&#39;) !== false ? explode(&#39;>&#39;, str_replace(&#39;<&#39;, &#39;&#39;, $tags)) : array($tags)); 
    if (end($tags) == &#39;&#39;) { 
      // http://www.manongjc.com/article/1213.html
      array_pop($tags); 
    } 
  } 
 
  foreach($tags as $tag) { 
    if ($stripContent) { 
      $content = &#39;(.+<!--&#39;.$tag.&#39;(-->|s[^>]*>)|)&#39;; 
    } 
 
    $str = preg_replace(&#39;#<!--?&#39;.$tag.&#39;(-->|s[^>]*>)&#39;.$content.&#39;#is&#39;, &#39;&#39;, $str); 
  } 
 
  return $str; 
}
Copier après la connexion

Introduction au paramètre :

$str fait référence à la chaîne qui doit être filtrée.

$tags fait référence aux balises html à supprimer.

$stripContent indique s'il faut supprimer le contenu de la balise. La valeur par défaut est False, ce qui signifie que le contenu de la balise ne sera pas supprimé.

Exemples d'utilisation :

<?php
$string=&#39;<div><a href="http://www.manongjc.com">码农教程<em>斜体</em></a><strong>加粗</strong></div>&#39;; 
$target = strip_only_tags($string, array(&#39;a&#39;,&#39;em&#39;));//移除$string字符串内的a、em、b标签。 
var_dump($target);
$target = strip_only_tags($string, array(&#39;em&#39;),true); //移除$string字符串内的a、em、b标签,并移除标签里面的内容
var_dump($target);
?>
Copier après la connexion

Résumé :

Je crois que mes amis apprendront cet article et se familiariseront avec php J'ai une certaine compréhension de strip_tags() qui filtre uniquement une certaine balise dans une chaîne. J'espère que cela vous sera utile !

Recommandations associées ;

Explication détaillée des lacunes de la fonction PHP strip_tags

Introduction détaillée de la fonction commune PHP strip_tags

Résumé de l'utilisation de la fonction de chaîne PHP strip_tags()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal