php正则咨询 关于href替换
$str中有很多超链接。想把href中的内容加密如下:ahref='http://www.baidu.com'加密成ahref='NgKOkoKjasdfsa'类似这样加...
$str中有很多超链接。想把href中的内容 加密 如下:
a href='http://www.baidu.com'
加密成
a href='NgKOkoKjasdfsa' 类似这样
加密函数有,但正则不太懂。
多谢 展开
a href='http://www.baidu.com'
加密成
a href='NgKOkoKjasdfsa' 类似这样
加密函数有,但正则不太懂。
多谢 展开
1个回答
展开全部
<?php
$str = preg_replace('/href=[\'|\"](\S+)[\'|\"]/i',"href='${1}'",$str);
备注:第二个参数的${1}就是匹配第一个参数里的分组,加密就对它处理
举个例子:
<?php
$str = 'a href="test.abc"';
echo preg_replace('/href=[\'|\"](\S+)[\'|\"]/i',"href='".md5('${1}')."'",$str);
将href里的路径md5加密,结果是:
a href='21e4f6b847fdb1445c297812710f15fd'
更多追问追答
追问
你好,加密函数放上去后,加的是$1这个字符,而不是$1的内容
追答
<?php
$str = 'a href="test.abc"';
function test($a)
{
return $a.'_ceshi';
}
echo preg_replace('/href=[\'|\"](\S+)[\'|\"]/i',"href='".test('${1}')."'",$str);
按这个来,调用函数的时候,你肯定少了单引号
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |