嗨,我正在研究wordpress主题并编写一个自定义小部件,它正常工作。但是当我制作wp_debug = true时,它会给出这个错误
不推荐使用:preg_replace():不推荐使用/ e修饰符,而是在....中使用preg_replace_callback。
这是我的preg_replace代码
$status = preg_replace("/((http:\/\/|https:\/\/)[^ )]+)/e", "'<a href=\"$1\" title=\"$1\" $target >'. ((strlen('$1')>=$linkMaxLen ? substr('$1',0,$linkMaxLen).'...':'$1')).'</a>'", $status);
我正在尝试像这样改变它
$status = preg_replace_callback(
"/((http:\/\/|https:\/\/)[^ )]+)/e",
function($matches) {
return "'<a href=\"$1\" title=\"$1\" $target >'. ((strlen('$1')>=$linkMaxLen ? substr('$1',0,$linkMaxLen).'...':'$1')).'</a>'";
},
$status
);
但它不起作用。我该如何解决这个问题?
答案 0 :(得分:0)
在回调中,将$1
替换为$matches[1]
:
function($matches) {
return "'<a href=\"$matches[1]\" title=\"$matches[1]\" $target >'
. (
( strlen($matches[1]) >= $linkMaxLen ?
? substr(matches[1], 0, $linkMaxLen).'...'
: matches[1]
)
)
.'</a>'"
},