2017-08-02 82 views
-1

我有一个preg_replace_callback功能,当我打开我的网页上,我得到以下警告:PHP - preg_replace_callback功能

警告:preg_replace_callback():需要参数2, “的stripslashes(的strstr(“\ 2 \ 5" , “相对= \类=”)? “\ 1”:

这是我的函数:

function ace_colorbox_replace($string) { 

    $pattern = '/(<a(.*?)href="([^"]*.)'.IMAGE_FILETYPE.'"(.*?)><img)/ie'; 

    $result = 'stripslashes(strstr("\2\5","rel=\class=") ? "\1" : "<a\2href=\"\3\4\"\5 rel=\"colorbox\" class=\"colorbox\"><img")'; 

    return preg_replace_callback($pattern, $callback, $string); 

} 

能有人帮我? 感谢
溴罗伯特

+0

'preg_replace_callack'的第二个参数必须是一个函数,而不是一个变量。 – Toto

+0

谢谢,你会怎么写整个功能呢? – Robert

+0

用'function($ m){这里函数的主体}'替换'$ callback'。请参阅文档 – Toto

回答

0

你写的功能是不完全

你有$pattern定义的所有权利,但$callback变量没有定义

你必须定义它,或者使用恒定

你也有$result变量,因为它是不必要的,所以它是不必要的

+0

这应该是一条评论。 – Toto

0

哦,是的SRY基因,这是一个复制错误

function ace_colorbox_replace($string) { 
    $pattern = '/(<a(.*?)href="([^"]*.)'.IMAGE_FILETYPE.'"(.*?)><img)/ie'; 
    $callback = 'stripslashes(strstr("\2\5","rel=\class=") ? "\1" : "<a\2href=\"\3\4\"\5 rel=\"colorbox\" class=\"colorbox\"><img")'; 
    return preg_replace_callback($pattern, $callback, $string); 
} 
+0

请编辑您的问题,如果你想添加一些信息。 – Toto

+0

请使用您问题上的编辑链接添加其他信息。后回答按钮应该只用于问题的完整答案。 - [来自评论](/ review/low-quality-posts/16906818) – Frits