function RegAll($str,$dir)//替全部地址路径
{
$str = preg_replace("/(<a.*?href)([\s]*=[\s]*[\"|\']?[\s]*)([^\s|\"|\'|>]+)(.*?[\/]?>)/is",'$1$2'.$dir."$3$4",$str);
$str = preg_replace("/(<img.*?src)([\s]*=[\s]*[\"|\']?[\s]*)([^\s|\"|\'|>]+)(.*?[\/]?>)/is",'$1$2'.$dir."$3$4",$str);
$str = preg_replace("/(<link.*?href)([\s]*=[\s]*[\"|\']?[\s]*)([^\s|\"|\'|>]+)(.*?[\/]?>)/is",'$1$2'.$dir."$3$4",$str);
$str = preg_replace("/(<script.*?src)([\s]*=[\s]*[\"|\']?[\s]*)([^\s|\"|\'|>]+)(.*?[\/]?>)/is",'$1$2'.$dir."$3$4",$str);
$str = preg_replace("/(<.*?background)([\s]*=[\s]*[\"|\']?[\s]*)([^\s|\"|\'|>]+)(.*?[\/]?>)/is",'$1$2'.$dir."$3$4",$str); return $str;
}
解决方案 »
- 逻辑或 题一个!!
- msyql如何存储标签(tags)
- PHP数组换行问题 *急救*
- exec()的问题
- www.netvibes.com页面可以拖动的模块怎么实现的?
- 请问PHP中如何实现一个IP地址同时只能进行一个文件的下载?
- 大家再帮一下忙!这个又搞不定了!麻烦大家了
- Commands out of sync; You can't run this command now 紧急求助,给分100,在线等待
- 问一个很菜的问题,echo和print有什么不同
- PHP提取Json当中的几个数据!50分求解答 高手来帮忙下!
- PHP语法问题 $xmlData = <<< END
- PHP可读取写入XML文件数据
你写在一起,所以匹配background的都有可能把前面<img的给匹配进去,所以有可能就不被替换.
之所以是部分被替换就是因为.*这个写法造成的.
最近比较忙有时间回来到csdn上再来感谢你
我感觉你三楼说的不太对啊?如下:
你说:"类似/.*/这个可以匹配任意字符呀,兄弟.
你写在一起,所以匹配background的都有可能把前面 <img的给匹配进去,所以有可能就不被替换."
我刚才测试了一下:(<a.*?href|<img.*?src|<link.*?href|<script.*?src|<.*?background)([\s]*=[\s]*[\"|\']?[\s]*)([^\s|\"|\'|>]+)(.*?[\/]?>)可以正常匹配:<img src=1.jpg><background="#fffffff"><img src=1.jpg>
啊?没有向你所说的:"background的都有可能把前面 <img的给匹配进去,所以有可能就不被替换"
而且您也看到了,我的background前面是使用的非贪婪匹配,并且把background放在了或运算的最后,
我想你的说的情况并不可能发生啊?但是事实就我这个表达式有问题>?有可能我们发现的都不是问题真正的所在.
哈哈,大哥也许,我的理解有问题,您能抽点时间举一个反例子,证明你的说法正确吗?谢谢了