如何解决urlencode在preg_replace中
$str = preg_replace(\"\'\\(look: (.{1,80})\\)\'Ui\",\"(look: <a href=\\\"dict.php?process=word&q=\\\\1\\\">\\\\1</a>)\",$str);
我想编码url,但是我该怎么做?
我可以在preg_replace中使用urlencode()函数吗?
$str = preg_replace(\"\'\\(look: (.{1,$str);
您对preg_replace中的url编码有任何想法吗?
解决方法
您可以使用
preg_replace_callback
,它允许您通过直接运行代码来生成替换字符串:
$str = preg_replace_callback(
\"\'\\(look: (.{1,80})\\)\'Ui\",create_function(
\'$matches\',\'return \\\'(look: <a href=\"dict.php?process=word&q=\'.urlencode($matches[1]).\'\">\'.
$matches[1].\'</a>)\\\';\'
),$str);
如果您使用PHP> = 5.3,则可以使上述操作更为轻松:
$str = preg_replace_callback(
\"\'\\(look: (.{1,function($matches) {
return \"(look: <a href=\\\"dict.php?process=word&q=\".urlencode($matches[1]).\"\\\">\".
$matches[1].\"</a>)\";
},$str);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。