我已经阅读了这个和这个,这个,以及关于 SO 的六个其他问题preg_match
,但我仍然无法弄清楚这个。
我从 CodeReview 问题中使用此代码并收到错误消息,指出preg_match()
没有找到分隔符“/”。
有人可以帮我解决吗?有问题的代码是以下语句:
if (preg_match($regex, $user_agent)) {
您可以通过转到问题本身中新的、已编辑的代码版本的底部并计算大约 12 行(不包括空白行)来找到它。
查看 Code Review 上发布的代码,在 $os_array 中有以下行:
'/win16' => 'Windows 3.11',
它缺少该/i
行正则表达式末尾的 ,这可能导致您的错误。上面的行也缺少,i
但这不会破坏任何东西。
正如 paxdiablo 建议的那样,在循环中打印我们的$regex
变量应该很快就发现了这个问题。
这是调试 101 的东西。在以下内容之后立即插入语句:
foreach ($browser_array as $regex => $value) {
打印出 和 的当前$regex
值$value
。
这应该(希望)向您展示它在抱怨什么。
这也应该对早期的数组扫描进行,您会在其中找到错误的'/win16'
,正如 JohnC 所拾取的。