1、效率当然是正则越少越好;
2、
$str = "<a href='../aaa'>鲜花</a>";
$tip = urlencode(preg_replace("/<a.+href=.+>(.+)<\/a>/Usi","\\1",$str));
$str = preg_replace("/(<a.+href=')(.+)('>.+<\/a>)/Usi","\\1list.php?q=$tip\\3",$str);
echo $str;
2、
$str = "<a href='../aaa'>鲜花</a>";
$tip = urlencode(preg_replace("/<a.+href=.+>(.+)<\/a>/Usi","\\1",$str));
$str = preg_replace("/(<a.+href=')(.+)('>.+<\/a>)/Usi","\\1list.php?q=$tip\\3",$str);
echo $str;
解决方案 »
- 小三同志紧急呼叫,请高手大哥来下。。。
- PHP显示问题
- ubuntu /etc/hosts 下配置域名,127.0.0.1 panda.com,apache的vhosts在哪里配置的?
- php 创建socket 服务器500错误 请教
- PHP连接LDAP服务器ldap_connect函数的问题!!!!!【在线等】
- 请问如何在php中获取request中的原始数据包括post上来的文件中的数据
- 200分的另外100分!说话算话!
- 有没有办法实现编程实现 定时自动对论坛某个板块发帖
- OCI如何返回select得到的记录数?
- PHP调用C#Webservice传数组参数的问题
- 用PHP向一个远程服务器上传文件需要什么用户权限吗?
- 用apache_2.0.55-win32版本的请进,在设置的时候有点问题请教!
"<a href=list.php?q=".urlencode('\${1}').">\${1}</a>",
"<a href='../aaa'>鲜花</a>");?>
你的代码,如果只匹配一次还可以,如果匹配很多次的话就有问题了。to zhiin(稚鹰@南通):
你的代码怎么不行,href=list.php?q=\${1}了to Gdj(陈水.智商只有129.非卖品) :
我不太明白,你能说清楚一点吗?
"<a href=list.php?q=".urlencode('\\1').">\\1</a>",
"<a href='../aaa'>鲜花</a>");?>
--------------------------------- PHP5现在推荐用这种方法, 我用的很好啊~
楼主这样试试:<?phpecho preg_replace("/<a\shref=\'..\/[^\']*\'>([^<]*)<\/a>/",
"<a href=list.php?q=".urlencode('\1').">\\1</a>",
"<a href='../aaa'>鲜花</a>");?>
如果还不行, 这样:<?phpecho preg_replace("/<a\shref=\'..\/[^\']*\'>([^<]*)<\/a>/e",
"<a href=list.php?q=".urlencode('\1').">\\1</a>",
"<a href='../aaa'>鲜花</a>");?>再不行就用回调函数!
如果还不行那我就无能为力了:(~~
$str = "<a href='../aaa'>鲜花</a><a href='../bbb'>礼品</a>";
echo preg_replace("/<a\shref=\'..\/[^\']*\'>([^<]*)<\/a>/e","'<a href=list.php?q='.urlencode('$1').'>$1</a>'",$str);
?>大家的一些例子没有通过可能是因为php版本的问题.在此谢谢大家了.
恩,虽然\${1}是PHP5里被推荐的,但是我在一些PHP版本比较旧的环境下测试,会出错。。
我记得以前测试是4.1.x还是4.0.x了