2011-04-06 72 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