相关疑难解决方法(0)

如何在PHP中获取用户代理

我正在使用这个JS代码来了解用户使用的浏览器.

<script>
  document.write(navigator.appName);
</script>
Run Code Online (Sandbox Code Playgroud)

我想让这个navigator.appName到php代码使用它像这样:

if ($appName == "Internet Explorer") {
  // blabla
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

php user-agent

72
推荐指数
4
解决办法
11万
查看次数

没有设置browscap ini指令

我正在使用该get_browser()功能试图警告人们他们的浏览器不支持Javascript.实际上我正在用它来告诉他们他们可以使用我正在构建的Web应用程序的某些部分.我已经决定正确使用Javascript,因为我已经厌倦了听害怕使用它的开发人员而且我已经看到了该语言的一些巨大潜力.我离题了,这是错误.

没有设置browscap ini指令

现在我想象这意味着我需要把它设置为php.ini.有人可以给我一些方向吗?

javascript php ini browscap

41
推荐指数
2
解决办法
8万
查看次数

在php中检测浏览器,版本和平台的可靠方法

我一直在寻找一种可靠的方式(至少不那么模糊):

  1. 浏览器的名称
  2. 版本
  3. 以及它所在的平台(OS)
  4. 也许更多的信息,但上面的3个信息就足够了.

我想根据这些信息显示自定义内容,例如:

如果用户想知道如何清除浏览器上的cookie.假设我有很多内容已经可用于许多浏览器.版本我想自动加载适当的内容

有没有办法不涉及Javascript来获取这些值?

我有用例没有找到或不准确的浏览器.所以我想拥有最可靠的解决方案.

这里有2个网站完全符合我的需要:

  1. www.whatismybrowser.com(联系店主知道如何用PHP做到这一点)
  2. HawkBrowser真的是详尽的测试,而不是免费的

部分解决方案的其他链接:

  1. 使用2012年8月的旧浏览器cap升级mybrowser.org(来源)
  2. 谷歌的www.whatbrowser.org

花了很多天尝试,搜索,但没有成功.我从Stackoverflow社区发现了许多提示:

  1. 使用get_browser()的browsercap.该项目已经停止(目前为2012年8月8日),并没有发现一些现代流行的手持设备.
  2. Javascript检测功能方法:Modernirz.对于我想要做的事情来说,不是很好的方法,需要经常更新.
  3. jQuery.browser不够好可能性不够.
  4. quirksmode.org javascript并且暂时不准确使用移动版本,并且更喜欢PHP版本.

其他有用的链接:

  1. Stakoverflow答案1
  2. Stackoverflow答案2
  3. PHP移动检测
  4. PIWIK分析报告

编辑1 到目前为止,我已经测试了答案和评论.这些解决方案非常令人满意:

  • PHP移动检测最后一个版本确实很好,如果你使用它,最好给客户端提供示例中的表单,以便他们可以为项目做出贡献.(感谢@Pekka)
  • WURFL不是最近但非常好.(感谢@Ian Roberts)

    编辑2 PHP移动检测使用WURFL

UPDATE

确保您收到的标题未被任何其他库修改.

例如,某些安全库(如OWASP PhpSec [ABANDONED])将标头结构更改为自定义对象, PHP移动检测无法访问所需的所有信息

对于那些使用OWASP PhpSec [ABANDONED]的人来说,http库正在修改全局头对象结构.(2013年12月)因此,如果您遇到问题,请在使用http库包含任何OWASP PhpSec类之前使用PHP移动检测

javascript php browser owasp

21
推荐指数
1
解决办法
5810
查看次数

PHP:在共享主机上使用browscap.ini. - ini_set()失败

我正在尝试使用get_browser(),不幸的是我的页面在共享主机上,我无法访问php.ini.

我已经下载了最新版本的browscap.ini并将其放在我的文档根目录中.我已经添加了以下内容: -

if(!ini_set('browscap','/ home/private stuff /browscap.ini')){echo
"无法设置browscap";
} else {
echo"browscap = [".ini_get('browscap')."]";
}
exit();

但这失败了,(nb:失败条件的echo语句总是显示[] - 即使我没有;但是有browscap.ini文件,设置应该仍然出现在ini_get ....不应该吗?)

我已经看过以前的问题了,他们似乎没有任何帮助,任何想法?

php shared-hosting browscap

9
推荐指数
2
解决办法
7703
查看次数

PHP - 向某些浏览器显示消息

我搜索过这个,我发现的一切都超出了我的需要.我以前在JavaScript中做过这个,但我更喜欢使用PHP.我将如何向访问者显示消息,具体取决于他们使用的浏览器?

例:

IE用户会看到:"你正在使用Internet Explorer"

Firefox用户会看到:"你正在使用Mozilla Firefox"

除了IE,Firefox,Chrome,Safari和Opera之外,我还不确定是否还有其他主流浏览器.但我至少希望单独向每个浏览器发送一条消息.谢谢.

php browser-detection

4
推荐指数
1
解决办法
1540
查看次数