求一个php简单的过滤除<br>,<p>,<style>html标签的正则或方法

求一个php简单的过滤除<br>,<p>,<style>html标签的正则或方法,第1张

调用下面函数,想去掉什么标签,就去掉什么
<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='>恕我直言(奥巴马更爱说这个词),你对正则表达式和你提供的这些代码的作用一无所知
[ATTACHMENT]和正则表达式没有关系,推断是DISCUZ等用到的BBCODE,你的目的就是用正则表达式把<a href="xxxphpfilename=abcjpg"></a>这样的HTML替换成
[ATTACHMENT]abcjpg[/ATTACHMENT]
So,
你提供的$_pattern的0和1元素分别是正则表达式和要替换成的字符。
简要说一下,匹配的正则表达式里的()中间的内容可以在被替换的字符串中的$1,$2等表示。
看正则表达式有3个括号,第二个和第三个分别匹配文件名和扩展名
所以,要替换成的字符串中的$2和$3将是文件名和扩展名
于是,
以上的实例被替换的结果是
[ATTACHMENT]abcjpg[/ATTACHMENT]
at last and the point
系统学习正则表达式,他是非常有用的
by the way,20分对我来说根本不算什么,写这几句话的功夫20元都挣上了
只是想帮帮你

1、过滤所有html标签的属性的正则表达式:
$search = array ("'<script[^>]></script>'si", // 去掉 JavaScript
"'<[\/\!][^<>]>'si", // 去掉 HTML 标记
"'([\r\n])[\s]+'", // 去掉空白字符
"'&(quot|#34);'i", // 替换 HTML 实体
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i"
); // 作为 PHP 代码运行
$replace = array ("","","\\1","\"","&","<",">"," ");
$html = preg_replace($search, $replace, $html);

可以使用strip_tags函数
<php
$rr = strip_tags($str,'<img><a><p><br>');
echo $rr;
>

不知道你的具体要求和目的是什么,PHP中有专门的标签转化处理函数,比如htmlSpecialChars()、stripslashes()等都是用于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()去掉重复的空格。
当中的(=)表示只匹配后面的空格跟随前面的空格的空格


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10558490.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存