0

我已经阅读了这个这个这个,以及关于 SO 的六个其他问题preg_match,但我仍然无法弄清楚这个。

我从 CodeReview 问题中使用代码并收到错误消息,指出preg_match()没有找到分隔符“/”。

有人可以帮我解决吗?有问题的代码是以下语句:

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

您可以通过转到问题本身中新的、已编辑的代码版本的底部并计算大约 12 行(不包括空白行)来找到它。

4

2 回答 2

3

查看 Code Review 上发布的代码,在 $os_array 中有以下行:

'/win16'                =>  'Windows 3.11',

它缺少该/i行正则表达式末尾的 ,这可能导致您的错误。上面的行也缺少,i但这不会破坏任何东西。

正如 paxdiablo 建议的那样,在循环中打印我们的$regex变量应该很快就发现了这个问题。

于 2012-07-05T00:45:27.660 回答
1

这是调试 101 的东西。在以下内容之后立即插入语句:

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

打印出 和 的当前$regex$value

这应该(希望)向您展示它在抱怨什么。

这也应该对早期的数组扫描进行,您会在其中找到错误的'/win16',正如 JohnC 所拾取的。

于 2012-07-05T00:40:59.577 回答