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,80})\\)\'Ui\",
            \"(look: <a href=\\\"dict.php?process=word&q=\\\\1\\\">\\\\1</a>)\",$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,80})\\)\'Ui\",
    function($matches) {
        return \"(look: <a href=\\\"dict.php?process=word&q=\".urlencode($matches[1]).\"\\\">\".
               $matches[1].\"</a>)\";
    },
    $str);
    

要回复问题请先登录注册