2012-07-05 43 views
0

我已閱讀thisthisthis,以及SO約preg_match半打其他問題了,我還是不明白這一個。的preg_match()否結束deliminator發現

我去使用this CodeReview問題的代碼,並得到一個錯誤,說有一個preg_match()沒有找到'/'找到的定界符。

有人可以幫我解決嗎?有問題的代碼是這樣的語句:

if (preg_match($regex, $user_agent)) { 

您可以將在問題本身代碼的新編輯的版本底部,計數約12條線路(不包括空行)找到它。

+3

錯誤發生時'$ regex'中有什麼? – Phil

+0

哈哈我你基本上問:我的正則表達式不起作用幫助我!沒有說你是正則表達式是... lol – Ties

回答

3

看着張貼在代碼審查代碼,在$ os_array有以下行:

'/win16'    => 'Windows 3.11', 

它缺少從該行的正則表達式,這可能是造成你的結束/i錯誤。上面那行也缺少i,但這不會破壞任何東西。

由於paxdiablo的建議,在循環內打印我們的$regex變量應該很快發現了這個問題。

+0

它讓我們不禁首先爲什麼有人在爲Windows 3.11做瀏覽器檢測。 – Ryan

+0

好的。它實際上並不在用戶聲明的數組中,而是在早期的數組中。 +1。 – paxdiablo

+0

@Minitech這不是我的代碼。我只是一個需要檢測操作系統的人。 –

1

這是調試101的東西。

foreach ($browser_array as $regex => $value) { 

打印出來的$regex$value當前值:後立即插入語句。

這應該(希望)顯示你到底在抱怨什麼。

這也應該在早期的陣列掃描中完成,在那裏您會發現JohnC拾取的錯誤'/win16'

+0

我拿出瀏覽器部分,因爲我發現它是非常錯誤的,我不需要CodeReview需要的原始海報檢測。也就是說,我無法讓代碼迴應任何問題。 –