preg_match不适用于php,utf8?

时间:2011-04-06 00:05:14

标签: php utf-8 preg-match

我有一个来自Wordpress数据库的字符串,如果它与我的代码匹配,想要用youtube视频替换该文本。

这样的事情:

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

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

它与来自数据库的数据不匹配,但如果我使用var_dump的输出并对其进行测试,则它与字符串匹配。

我认为它与utf-8有关,但我不知道要解决它我已经尝试了/uutf8_decode等等,但没有结果。

1 个答案:

答案 0 :(得分:2)

您的文字中没有UTF-8。问题是你没有逃过方括号\[

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

(仅仅逃避第一个就足够了。结束括号的元目的被忽略了。)