Устаревший: preg_replace (): модификатор / e устарел, ошибка

Привет, я работаю над темой 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

Решение

В обратном вызове заменить $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>'"},
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]