php – get_browser()返回FALSE
– 在
Linux上运行
PHP 5.3.8-
首先,我们已经解决了这个问题,直到函数返回预期值.然而,我仍然有很多未解决的问题,而“解决方案”更像是一个黑客攻击. 我在这个问题上度过了一天的大部分时间,所以当我解释所做的事情时请耐心等待.首先,问题是get_browser()的返回值为FALSE,这不是记录的返回值.这使我假设返回FALSE意味着函数中存在某种错误状态. 经过多次迭代后,测试代码变成了一个简单的var_dump(get_browser($agent,true)).我运行测试时都直接传递用户代理字符串,并且不传递任何参数,例如: var_dump(get_browser()),它们都具有相同的返回值. 尝试/验证的内容,返回值没有变化: 的browscap.ini: >拥有最新版本,还测试了一些以前的版本 权限: > bowscap.ini – 初始权限为644,但我已经尝试了644-777的所有内容 用户代理 >尝试传递手动用户代理字符串 php.ini中 > browscap设置指向正确的位置 错误日志 >检查PHP&任何提及’browscap’或任何甚至密切相关的事情的Apache错误日志 – 没有什么不寻常的. 文件结构 这是我怀疑错误来自的地方. browscap.ini位于/ var / php /中,它具有如上所述的适当权限.我的想法是,PHP可能无法访问此目录,或者沿着这些行.但是,此目录也是存储会话的位置,因此不太可能. 解决方案” 解决这个问题的原因是将browscap.ini移动到公共Web目录.我很好奇为什么会这样,特别是考虑到无证件的返回值. “解决方案”有效,但不是我认为我会找到的解决方案…… get_browser()是否有特殊的权限要求,或类似的东西? file()可以正常访问目录和文件,但get_browser()不能(大概).在这个问题上,我几乎把头发拉了出来,并希望得到一些解决方案! 谢谢阅读!
实际上,即使没有在手册页上记录,get_browser函数也可以出于多种原因返回FALSE.
至少看一下the underlying source code让我们假设一下. 我建议你看看那里然后告诉我你是否有其他问题.我或许可以回答它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |