preg_match не работает с php, utf8? - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть строка из базы данных Wordpress, и я хочу заменить текст видео на YouTube, если он совпадает с моим кодом.

Примерно так:

text bla [youtube video="cCaW6sdAkEkd9PY"] bla bla and some more text

$pattern = '/\[youtube video="(.+)"\]/';

Нетсовпадают с данными, поступающими из базы данных, но совпадают по строке, если я использую вывод из var_dump и проверяю его.

Я считаю, что это связано с utf-8, но я не знаю, как это исправитьэто я пробовал /u, utf8_decode и т. д., но безрезультатно.

1 Ответ

2 голосов
/ 06 апреля 2011

В вашем тексте нет UTF-8. Проблема в том, что вы не избежали квадратной скобки \[

 $pattern = '/\[youtube video="(.+?)"]/';

(достаточно экранировать только первое. Мета-цель закрывающей скобки игнорируется.)

...