哪位强人,就些个连接过滤的吧!
<a href="http://baidu.com/">baidu</a>
如何过滤能够不留下任何字符,而且不影响到其他代码!
strip_tags可以实现html过滤,不过过滤的太干净了,全都都没了!不能够选择性的过滤一些!str.replace(/<a[^>]+href=[" ]?([^"]+)[" ]?[^>]*>(.*?)<\/a>/ig,"$2");
这句把连接转换成ubb
php如何写!放到<?php ?>之间就出现错误
<a href="http://baidu.com/">baidu</a>
如何过滤能够不留下任何字符,而且不影响到其他代码!
strip_tags可以实现html过滤,不过过滤的太干净了,全都都没了!不能够选择性的过滤一些!str.replace(/<a[^>]+href=[" ]?([^"]+)[" ]?[^>]*>(.*?)<\/a>/ig,"$2");
这句把连接转换成ubb
php如何写!放到<?php ?>之间就出现错误
str.replace(/<a[^>]+href=[" ]?([^"]+)[" ]?[^>]*>(.*?)<\/a>/ig,"$2");
=============================================
大哥,这个不是php中的什么东西,当然出错了.改成
str_replace(/<a[^>]+href=[" ]?([^"]+)[" ]?[^>]*>(.*?)<\/a>/ig,"$2");另个,报什么错,怎么不贴出来啊!大家好分析啊!
不过已经从DZ里头找到了两句清除连接和图片连接
$btdata=preg_replace("/(http:\/\/[a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+\.(jpg|gif|png|bmp))/is","",$btdata);
$btdata=preg_replace("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto):\/\/|www\.)([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+)/is","",$btdata);
但是还是没有过滤掉<img src="" width="128" height="96" border="0"
<a href=""
$btdata=preg_replace("/(<div[^>]+[a-z0-9]=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
$btdata=preg_replace("/(<font[^>]+[a-z0-9]=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
$btdata=preg_replace("/(<dd[^>]+[a-z0-9]=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
$btdata=preg_replace("/(<img[^>]id=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
$btdata=preg_replace("/(<dl[^>]+[a-z0-9]=\"([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+))[^>]*>/is","",$btdata);
基本已经解决,需要的就看这些吧!别我的老路了!还多看开源系统比较实在!不过中文还无法过滤,字符这么多过滤起来非常难!
string strip_tags ( string str [, string allowable_tags] )相关地址:
http://cn2.php.net/manual/zh/function.strip-tags.php用正则的话,效率会低很多,php自带的函数都是c写的,效率很高。而且你的那些正则似乎匹配的东西太多了,完全没有必要。$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",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e"); // 作为 PHP 代码运行$replace = array ("",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");$text = preg_replace ($search, $replace, $document);这是一个正则的例子。$search是你要匹配的内容,$replace是你要替换的内容,如果不想要的话就替换为""空,$document就是你要替换的源字符串。注意,$search,$replace两个数组的元素是一一对应的,顺序别弄错了。
关于中文字符,我想把他们先转成UNICODE
然后在过滤
不过效率上一定会非常差,不知道有其他更好的方法吗