当前位置:首页 » 编程语言 » php过滤html

php过滤html

发布时间: 2023-06-27 18:07:36

php处理解析HTML字符串的几种方法

1.strip_tags() 函数:可以过滤掉HTML和PHP标签,返回一个全新的字符串!

用法:

string strip_tags ( string 要处理的字符串 [, string 想保留的标签] )

比如: 标签,就这样写握早,strip_tags($str, “”) ,如果要保留多个标签,则标签之间用空格隔开。

2.用 strpos , substr 混合处理

当我们要截取的字符串,有唯一的标识时,通常可以用这个办法,比如取一个带唯一id的液敏标签abc,只要找到和,中段埋雀间的内容就都出来了。

3.PHP DOMDocument

DOMDocument 提供的方法是输出没有任何标签的纯文本,如果你只需要文本数据,那用这个方法最简单拉

❷ php正则表达式过滤某些HTML标签代码

如果只要
<b>
标签,不用“过滤”的方法,用“提取”的方法更简单。
$str
=
'<img
src="xxx"><b>aaa</b><br>\n<b>b\nbb</b><span
style="color:#FF0000;">yyy</span>';
$pattern
=
'/<b>(((?!<\/b>).)*)<\/b>/mi';
preg_match_all($pattern,
$str,
$matches,
PREG_SET_ORDER);
print_r($matches);
输出
Array
(
[0]
=>
Array
(
[0]
=>
<b>aaa</b>
[1]
=>
aaa
[2]
=>
a
)
[1]
=>
Array
(
[0]
=>
<b>b\nbb</b>
[1]
=>
b\nbb
[2]
=>
b
)
)
$matches[0][0],$matches[1][0]
是你想要的结果?

❸ 用php过滤html部分标签

$str=preg_replace("/\s+/", " ", $str); //过滤多余回车
$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)

$str=preg_replace("/<\!--.*?-->/si","",$str); //注释
$str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE
$str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签
$str=preg_replace("/<(\/?head.*?)>/si","",$str); //过滤head标签
$str=preg_replace("/<(\/?meta.*?)>/si","",$str); //过滤meta标签
$str=preg_replace("/<(\/?body.*?)>/si","",$str); //过滤body标签
$str=preg_replace("/<(\/?link.*?)>/si","",$str); //过滤link标签
$str=preg_replace("/<(\/?form.*?)>/si","",$str); //过滤form标签
$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签

$str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //过滤applet标签
$str=preg_replace("/<(\/?applet.*?)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //过滤style标签
$str=preg_replace("/<(\/?style.*?)>/si","",$str); //过滤style标签

$str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //过滤title标签
$str=preg_replace("/<(\/?title.*?)>/si","",$str); //过滤title标签

$str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //过滤object标签
$str=preg_replace("/<(\/?objec.*?)>/si","",$str); //过滤object标签

$str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //过滤noframes标签
$str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //过滤frame标签
$str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/<(\/?script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签
$str=preg_replace("/&#/si","&#",$str); //过滤script标签,如javAsCript:alert(

清除空格,换行

function DeleteHtml($str)
{
$str = trim($str);
$str = strip_tags($str,"");
$str = ereg_replace("\t","",$str);
$str = ereg_replace("\r\n","",$str);
$str = ereg_replace("\r","",$str);
$str = ereg_replace("\n","",$str);
$str = ereg_replace(" "," ",$str);
return trim($str);
}

过滤HTML属性

1,过滤所有html标签的正则表达式:

复制代码 代码如下:

</?[^>]+>

//过滤所有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]*

6,过滤部分html标签的属性的正则表达式的枚举式(比如alt属性):

复制代码 代码如下:

(\s)alt=[^\s]*

❹ php过滤多余html标签的代码!

$str = ” This line contains\tliberal \r\n use of whitespace.\n\n”;

$str = trim($str);// 首先去掉头尾空格

$str = preg_replace(’/\s(?=\s)/’, ‘’, $str);// 接着去掉两个空格以上的

$str = preg_replace(’/[\n\r\t]/’, ‘ ‘, $str);// 最后将非空格替换为一个空格

使用上面的例子可以去掉所有多余的空格。

首先使用TRim()去头尾空格,

接着用preg_replace()去掉重复的空格。

当中的(?=)表示只匹配后面的空格跟随前面的空格的空格

❺ PHP 过滤HTML中除了img标签外其它所有标签,同时保留标签内容,但<script>标签内的内容都清除。

提供实例:
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// 允许 <p> 和 <a>
echo strip_tags($text, '<p><a>');
?>
以上例程会输出:
Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

具体做法:
<?php
echo strip_tags($text, 'img');
?>

❻ PHP如何去除字符串中的html标记

php去除字符串中的html标记,用到的工具:notepad++,代码如下:

1.

<?php
echostrip_tags("Hello<h1>china!</h1>");
?>

说明:strip_tags函数就是过滤html标签。

2.输出结果:Hello china!

注意事项:win和linux都适用!

❼ php文件输出如何过滤掉html,代码如下

<b>asasasas</b>这个html标签是加粗标签,如果你想在浏览器上显示的是加粗的asasasas就直接输出
<?php
echo "<b>asasasas</b>";

?>

如果你想输出的<b>asasasas</b>这个字符串的话呢
<?php

echo htmlspecialchars("<b>asasasas</b>");

?>

热点内容
战舰少女r红茶脚本 发布:2025-02-12 04:05:05 浏览:465
峰火战国服务器什么时候开 发布:2025-02-12 03:56:31 浏览:175
电脑配置慢怎么解压 发布:2025-02-12 03:52:18 浏览:716
androidsdk功能 发布:2025-02-12 03:43:07 浏览:87
阿里云服务器可以访问外网吗 发布:2025-02-12 03:42:20 浏览:880
脚本的生命周期顺序 发布:2025-02-12 03:37:28 浏览:369
素数加密 发布:2025-02-12 03:37:27 浏览:803
ar源码 发布:2025-02-12 03:32:04 浏览:656
阅图文件夹 发布:2025-02-12 03:30:22 浏览:762
旧手机存储资料 发布:2025-02-12 03:29:42 浏览:472