2011-04-06 74 views
0

我有一个来自Wordpress数据库的字符串,并且如果它与我的代码相匹配,则希望用youtube视频替换文本。preg_match不适用于php,utf8?

事情是这样的:

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

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

不匹配的数据从数据库中来,但它在一个字符串,如果我使用var_dump和测试上输出相匹配。

我相信它与UTF-8有关,但我不知道是否可以修复它我试过/u,utf8_decode等,但没有结果。

+0

恕我直言,你之前应该加一些反斜杠'['and']' – s3v3n 2011-04-06 00:07:59

+0

你的YT视频ID无效:) – 2011-04-06 00:15:47

回答

2

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

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

(这是足以逃脱只有第一,右括号的元目的被忽略。)

+0

+1我学会了关于裸体]] :) – alex 2011-04-06 00:11:06

+0

但是只有其中一个逃脱给我带来了与无与伦比的括号相同的效果。 。*颤抖* – 2011-04-06 06:54:50