‘壹’ php 去除字符串中指定字符之间的字符
<?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[^>]*)?>([\s\S]*?)?<\/' . $tagname . '>/i';
return preg_replace($sc, $re, $string);
}
/**
* 以下是测试代码
*/
// 网络首页内容
$string = file_get_contents('http://www..com/');
// 去掉 style 及包含内容
$string = replace_html_tag($string, 'style', true);
$string = replace_html_tag($string, 'script', true);
// 去掉 a 标签,并保存其中内容
$string = replace_html_tag($string, 'a');
// 去掉 span 标签,并保存其中内容
$string = replace_html_tag($string, 'span');
echo $string;
?>
‘贰’ php正则匹配所有a标签,并删除
1,过滤所有html标签的正则表达式:</?[^>]+>
2,过滤所有html标签的属性的正则表达式:$html = preg_replace("/<([a-zA-Z]+)[^>]*>/","<\\1>",$html);
3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):</?[^pP/>]+>
4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等):</?[aApPbB][^>]*>
5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):\s(?!alt)[a-zA-Z]+=[^\s]*
‘叁’ php正则表达式去掉开头的a标签
$res = preg_replace("/<a.+<\/a>(.*)/", "$1", $a);
$res就是你要的结果
‘肆’ php 去掉a标签中的链接
只是保留内容,你把下面的代码改改就行了:
<?php
$html_with_a_tags ='<a href="www..com" target="_blank" class="keylink">玉石</a>';
//保存一个超链接字符串变量,php当字符串处理
$txt = strip_tags($html_with_a_tags);
//用strip_tags去掉html标签
echo $txt;
//输出结果
?>
至于你的说什么object,把它调进去就行了
‘伍’ php 正则过滤掉 指定的a标签
我这个更好
<?php
$str='<a class="qc" href="/car">汽车</a><a class="db" href="/car">大巴</a><a class="qc" href="/car">汽车</a>';
$str=preg_replace("/<a class=\"qc\" href=\"(.*)\">(.*)<\\/a>/iU","$2",$str); //过滤script标签
echo $str;
?>