Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
浏览器版本匹配-PHP 5.1.6中的正则表达式中断_Php_Regex_Preg Match All - Fatal编程技术网

浏览器版本匹配-PHP 5.1.6中的正则表达式中断

浏览器版本匹配-PHP 5.1.6中的正则表达式中断,php,regex,preg-match-all,Php,Regex,Preg Match All,我正在使用一个脚本来检测浏览器及其在上的页面上多次引用的版本 包含脚本的文件另存为UTF-8,实际上工作正常´: // relevant parts only where $ub stores the browser name like "Safari" $userAgent = $_SERVER['HTTP_USER_AGENT']; $known = array('Version', $ub, 'other'); $pattern = '#(?<browser>' . join(

我正在使用一个脚本来检测浏览器及其在上的页面上多次引用的版本

包含脚本的文件另存为UTF-8,实际上工作正常´:

// relevant parts only where $ub stores the browser name like "Safari"
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$known = array('Version', $ub, 'other');
$pattern = '#(?<browser>' . join('|', $known) . ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
preg_match_all($pattern, $userAgent, $matches);
现在,我们正在使用PHP5.1.6的服务器上运行一个站点。不幸的是,它破坏了正则表达式并显示以下警告:

PHP警告:preg_match_all[function.preg match all]:编译失败:在第48行的/file.PHP中的偏移量3处?<之后出现无法识别的字符


必须如何更新模式才能在PHP5.1.6中正常工作?

直到PHP5.2.2才介绍您尝试使用的语法?图案您应该可以改为使用它?Ppattern。

您尝试使用的语法直到PHP5.2.2才引入?图案您应该可以改为使用它?Ppattern。

您应该真正升级到PHP5。4@crypticツ 符合事实的但不幸的是,它不在我的手中,因为其他人正在同一台服务器上运行一个Typo3,目前无法更新-所以我被告知。警告:PHP5.1在2006年被宣布为生命终结,从那以后没有任何错误修复或安全更新。它严重过时且不安全,不应用于生产系统。此外,请注意HTTP_USER_代理字符串可能不可靠。有些浏览器允许对其进行欺骗,有些软件(如代理和匿名器)完全删除用户代理字符串。小心不要依赖它。@insertusernamehere-很公平。我就这么说吧。只要每个人都知道潜在的问题,如果服务器遭到黑客攻击,没有人可以说他们不知道-您真的应该升级到PHP5。4@crypticツ 符合事实的但不幸的是,它不在我的手中,因为其他人正在同一台服务器上运行一个Typo3,目前无法更新-所以我被告知。警告:PHP5.1在2006年被宣布为生命终结,从那以后没有任何错误修复或安全更新。它严重过时且不安全,不应用于生产系统。此外,请注意HTTP_USER_代理字符串可能不可靠。有些浏览器允许对其进行欺骗,有些软件(如代理和匿名器)完全删除用户代理字符串。小心不要依赖它。@insertusernamehere-很公平。我就这么说吧。只要每个人都知道潜在的问题,如果服务器遭到黑客攻击,没有人可以说他们不知道-