Я получаю следующее сообщение для некоторых php, которые я должен использовать, но не писал:
Deprecated: Function ereg() is deprecated in /opt/lampp/htdocs/webEchange/SiteWeb_V5/inc/html2fpdf.php on line 466
Это строка 466:
if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
Я попробовал просто заменить preg_match, но он не смог распознать модификатор = в регулярном выражении. Я не слишком хорошо разбираюсь в регулярном выражении, и для решения этого требуется, чтобы я изучил потребности в регулярном выражении и потребности regexp preg_match (которые , если я не ошибаюсь, другое) … Можете ли вы, ребята, помочь мне с этим?
благодаря
Расширенные регулярные выражения POSIX (POSIX ERE, используемые ereg
) и Perl-совместимые регулярные выражения (PCRE, используемые preg_match
) очень похожи. За исключением некоторых специальных выражений POSIX , PCRE представляет собой надмножество POSIX ERE.
Это означает, что вам просто нужно разместить регулярные выражения POSIX ERE в разделителях (здесь /
) и избежать любого появления этого символа внутри регулярного выражения, и у вас есть действующее регулярное выражение PCRE:
/^([^=]*)=["']?([^"']*)["']?$/
Так:
preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/', $v, $a3)
Пытаться:
if(preg_match('~^([^=]*)=["\']?([^"\']*)["\']?$~',$v,$a3))
Регулярное выражение в preg_match должно быть заключено между двумя разделителями, что не соответствует устаревшей функции ereg ().
preg_
family ожидает, что регулярное выражение будет ограничено. Вместо:
'^([^=]*)=["\']?([^"\']*)["\']?$'
пытаться:
'/^([^=]*)=["\']?([^"\']*)["\']?$/'