楼主呀,你真会浪费可用分呀。
我是没有好办法,只有一个土办法了。你试试看。
有谁比我的好我也会关注的。<?php
$s = '[url="http://www.abc.com/abc.htm"]
[url="http://www.webdisallow.com/abc.htm"]
webdisallow.com其它文字webdisallow.net
[url="http://www.webdisallow.net/exchange/apfenpianqi.jpg"]
其它文字...
';
$s = str_replace("webdisallow", "XXX", $s);
$s = preg_replace("/(\[img\].*)XXX(.*\[\/img\])/", "\\1webdisallow\\3", $s);
echo($s);
?>
我是没有好办法,只有一个土办法了。你试试看。
有谁比我的好我也会关注的。<?php
$s = '[url="http://www.abc.com/abc.htm"]
[url="http://www.webdisallow.com/abc.htm"]
webdisallow.com其它文字webdisallow.net
[url="http://www.webdisallow.net/exchange/apfenpianqi.jpg"]
其它文字...
';
$s = str_replace("webdisallow", "XXX", $s);
$s = preg_replace("/(\[img\].*)XXX(.*\[\/img\])/", "\\1webdisallow\\3", $s);
echo($s);
?>
得到结果是:
[url="http://www.abc.com/abc.htm"] [url="http://www.XXX.com/abc.htm"] XXX.com其它文字XXX.net [url="http://www.XXX.net/exchange/apfenpianqi.jpg"] 其它文字...
少了第一个[/img]了,再等
<script>
str = '[url="http://www.abc.com/abc.htm"][url="http://www.webdisallow.com/abc.htm"]webdisallow.com其它文字webdisallow.net[url="http://www.webdisallow.net/exchange/apfenpianqi.jpg"]其它文字...'
str1 = str
str = str.replace(/(\[img\][^\[]*)webdisallow([^\[]*[\[\/img\]])/gi,"$1■$2")
str = str.replace(/webdisallow/gi,"xxx")
str = str.replace(/■/gi,"webdisallow")
alert(str1+"\n\n"+str)
</script>直接的再让我想想
可是这是要在写入数据库之前做的事情,所以最好能给我PHP的,谢谢!
2、用正则把中间的########替换成webdisallow
3、把所有的#########替换成XXX/\[img\].+([\#]{9}).+\[\/img\]/i
<?php
$s = '[url="http://www.abc.com/abc.htm"]
[url="http://www.webdisallow.com/abc.htm"]
webdisallow.com其它文字webdisallow.net
[url="http://www.webdisallow.net/exchange/apfenpianqi.jpg"]
其它文字...
';
$s = str_replace("webdisallow", "XXX", $s);
//echo $s;
$s = preg_replace("/(\[img\].*)XXX(.*\[\/img\])/isU", "\\1webdisallow\\2", $s);
echo($s);
?>
原来我给出的例子里就是有人输入“■”,那些人太怪了!什么都输进去!
不过原理我明白了.
请keaizhong(可爱钟),eglic(圪圪),shuangren(土狗早睡早起)到这里领分!谢谢
http://community.csdn.net/Expert/topic/3954/3954008.xml?temp=.393017