Замените preg_replace на preg_replace_callback

Я использую фреймворк со следующим preg_replace в одном из файлов, он дает мне ошибку:

[Устарело] preg_replace (): модификатор / e устарел, используйте
вместо preg_replace_callback

Может кто-нибудь посоветовать, как бы я изменил это, чтобы использовать preg_replace_callback, пожалуйста?

$search = array(
'/\s+>\s+/', // Matches any element that is a child of parent.
'/\s+\+\s+/', // Matches any element that is an adjacent sibling.
'/\s+/', // Matches any element that is a descendant of an parent element element.
'/(\w)\[(\w+)\]/', // Matches element with attribute
'/(\w)\[(\w+)\=[\'"]?(\w+)[\'"]?\]/', // Matches element with EXACT attribute
'/(\w+)?\#([\w\-]+)/e', // Matches id attributes
'/(\w+|[\*\]])?((\.[\w\-]+)+)/e', // Matches class attributes
);
$replace = array(
'/',
'/following-sibling::*[1]/self::',
'//',
'\\1[@\\2]',
'\\1[@\\2="\\3"]',
"(strlen('\\1') ? '\\1' : '*').'[@id=\"\\2\"]'",
"(strlen('\\1') ? '\\1' : '*').'[contains(concat(\" \",@class,\" \"),concat(\" \",\"'.implode('\",\" \"))][contains(concat(\" \",@class,\" \"),concat(\" \",\"',explode('.',substr('\\2',1))).'\",\" \"))]'",
);
$xpathcache[$xpathkey] = '//'.preg_replace($search,$replace,$css_selector);

Спасибо

1

Решение

Задача ещё не решена.

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

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

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