PHP移除指定HTML标签方法总结,去掉指定的html标签

string strip_tags ( string str [, string allowable_tags] )

有时候大家需求把html标签页存到数据库里,然则有个别场馆却供给拿无html标签的纯数据,这年就要对带html标签的数目进行拍卖,把html标签都去掉。经常用 htmlspecialchars() 来过滤html,可是把html的字符转义了,最终展现出来的正是html源代码,利用strip_tags()就足以把html标签去除掉。

弊端 :

PHP私下认可的函数有移除指定html标签,名称叫strip_tags,在好几场所特别有效。

其一函数只可以保留想要的html标签,正是参数string allowable_tags。
在yizero的评说中小编领悟了这几个函数的参数allowable_tags的别的的用法。

strip_tags

 代码如下

strip_tags — Strip HTML and PHP tags from a string

strip_tags($source, ”); 去掉于是的html标签。

string strip_tags ( string str [, string allowable_tags] )

strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em标签。

弊端 :

万一想去掉的html的内定标签。那么这些函数就无法满足必要了。于是乎作者动用了那个函数。

这么些函数只可以保留想要的html标签,正是参数string allowable_tags。

 

其一函数的参数allowable_tags的别样的用法。

 代码如下

 代码如下

<?php
/**
* 删除钦点的HTML标签及中间内容,临时只援助单标签清理
*
* @param string $string -- 要管理的字符串
* @param string $tagname -- 要删减的标签字称
* @param boolean $clear -- 是还是不是删除标签内容
* @return string -- 重临管理完的字符串
*/
function replace_html_tag($string, $tagname, $clear = false){
$re = $clear ? '' : '1';
$sc = '/<' . $tagname . '(?:s[^>]*)?>([sS]*?)?</' . $tagname . '>/i';
return preg_replace($sc, $re, $string);
}

strip_tags($source, ”); 去掉于是的html标签。
strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em标签。

以下是测量检验代码

比如想去掉的html的钦命标签。那么这几个函数就不可能满意供给了。

 代码如下

于是我利用了这么些函数。

// 百度首页内容

 代码如下

$string = file_get_contents('');

function strip_only_tags($str, $tags, $stripContent = FALSE) {
  $content = '';
 
  if (!is_array($tags)) {
    $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
    if (end($tags) == '') {
      array_pop($tags);
    }
  }
 
  foreach($tags as $tag) {
    if ($stripContent) {
      $content = '(.+<!--'.$tag.'(-->|s[^>]*>)|)';
    }
 
    $str = preg_replace('#<!--?'.$tag.'(-->|s[^>]*>)'.$content.'#is', '', $str);
  }
 
  return $str;
}

// 去掉 style 及分包内容
$string = replace_html_tag($string, 'style', true);
$string = replace_html_tag($string, 'script', true);

参数说明

// 去掉 a 标签,并保存在那之中内容
$string = replace_html_tag($string, 'a');

$str  — 是指供给过滤的一段字符串,比方div、p、em、img等html标签。
$tags — 是指想要移除钦定的html标签,例如a、img、p等。
$stripContent = FALSE  — 移除标签内的源委,比方将全体链接删除等,默感觉False,即不删除标签内的原委。

// 去掉 span 标签,并保留在这之中内容
$string = replace_html_tag($string, 'span');

动用表明

echo $string;
?>

 代码如下

万一大家要去除钦定两个之间的数据

$target = strip_only_tags($source, array(‘a’,'em’,'b’));移除$source字符串内的a、em、b标签。

 

$source='<div><a href="" target="_blank"><img src="logo.png" border="0" alt="Welcome to linzl." />This a example from<em>lixiphp</em></a><strong>!</strong></div>
 ';
 
$target = strip_only_tags($source, array('a','em'));
 
//target results
//<div><img src="/logo.png" border="0" alt="Welcome to lixiphp." />This a example from<strong>!</strong></div>

 代码如下

别的措施

<?php
/**  
* PHP去掉特定的html标签
* @param array $string  
* @param bool $str 
* @return string
*/ 
function _strip_tags($tagsArr,$str) {  
    foreach ($tagsArr as $tag) { 
        $p[]="/(<(?:/".$tag."|".$tag.")[^>]*>)/i"; 
    } 
    $return_str = preg_replace($p,"",$str); 
    return $return_str; 

 
$str = "<b>您好</b><input type='text' name='' /><a href=';"; 
echo _strip_tags(array("b", "input", "a"),$str); #去掉 B 标签和 INPUT 标签 
?>

 代码如下

<?php
//取出br标记
function strip($str)
{
$str=str_replace("<br>","",$str);
//$str=htmlspecialchars($str);
return strip_tags($str);
}
?>

一个自定义的函数

/

 代码如下

**
 * 取出html标签
 *
 * @access public
 * @param string str
 * @return string
 *
 */
function deletehtml($str) {
    $str = trim($str); //清除字符串两侧的空格
    $str = strip_tags($str,"<p>"); //利用php自带的函数清除html格式。保留P标签
    $str = preg_replace("/t/","",$str); //使用正则表明式相配内需替换的剧情,如:空格,换行,并将替换为空。
    $str = preg_replace("/rn/","",$str);
    $str = preg_replace("/r/","",$str);
    $str = preg_replace("/n/","",$str);
    $str = preg_replace("/ /","",$str);
    $str = preg_replace("/  /","",$str);  //相称html中的空格
    return trim($str); //重返字符串
}  

本文由365bet体育在线官网发布于365bet,转载请注明出处:PHP移除指定HTML标签方法总结,去掉指定的html标签

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。