Php 致命错误:调用未定义的函数:strripos()

Php 致命错误:调用未定义的函数:strripos(),php,Php,我只在safari和android浏览器中看到这个错误。我的代码所做的只是根据浏览器重定向页面?其他地方都可以,有什么建议吗 ? “致命错误:在第65行的/home/content/a/l/i/aliahealthcare/html/Register-With-Alia.php中调用未定义的函数:strripos()” 您可能正在使用PHP4,它不支持 您可以使用echo PHP\u version检查您的版本,通过在文档中调用phpinfo()查看您正在运行的PHP版本 strripos

我只在safari和android浏览器中看到这个错误。我的代码所做的只是根据浏览器重定向页面?其他地方都可以,有什么建议吗 ?

“致命错误:在第65行的/home/content/a/l/i/aliahealthcare/html/Register-With-Alia.php中调用未定义的函数:strripos()”


您可能正在使用PHP4,它不支持


您可以使用
echo PHP\u version

检查您的版本,通过在文档中调用phpinfo()查看您正在运行的PHP版本

 strripos - PHP5
 strrpos - PHP4/5
如果您正在运行php4,请将其更改为strrpos(..),它的格式仍然相同

根据托管服务器的不同,您可以通过向htaccess添加以下行来强制php5

 AddType x-mapp-php5 .php
 AddHandler x-mapp-php5 .php

根据错误,PHP不知道
stripos()


我假设您使用的是PHP4,因为该函数是在PHP5中引入的。

如果您使用的是5之前的PHP版本,则可能会出现这种情况<在PHP5中添加了code>strripos。

除了PHP4答案之外,还有一件事是正则表达式用户代理检查

PHP包含了自PHP4以来一直可用的
get\u browser()
函数

您真正需要做的是:

$browser = get_browser(null, true);

if (strtolower($browser['browser']) == 'firefox'){
   header() //redirect to wherever
}
或者只使用switch语句

注:

为了使其正常工作,请在 php.ini必须指向浏览器上browscap.ini文件的正确位置 你的系统

browscap.ini未与PHP捆绑,但您可能会发现一个最新的» 这里是php_browscap.ini文件

虽然browscap.ini包含许多浏览器上的信息,但它依赖于 用户更新以保持数据库最新。该文件的格式为 这是不言自明的


stripos()应该从php 5开始提供,所以:您有什么php版本?第65行是哪一行以确保完整性?通过打印出来检查用户代理字符串,然后查看它们的不同之处。这个页面应该提供很多关于如何使用php检测浏览器的建议:@DamienPirsy自php以来就一直可用4@Mob不是根据前一段时间编写的代码,只是意识到这是一个问题。但是谢谢你的建议!代码在firefox、chrome和IEThanks中也有效,奇怪的是它在IE firefox中有效,chrome没有问题,只是在运行android浏览器或safari时发现了错误?IE、firefox和chrome可能最终有1个匹配项,因此执行else而不是if($i!=1){}。这样他们就永远不会遇到strripos,因此也不会出现错误。删除这个if,看看它是否能在Firefox上运行。
$browser = get_browser(null, true);

if (strtolower($browser['browser']) == 'firefox'){
   header() //redirect to wherever
}