我有一个使用Zend MVC框架的PHP应用程序。应用程序的每个请求的入口点都在/public/index.php。
中我有一个Browser类,它具有检查用户浏览器是否与应用程序兼容的功能。
我的困境是,index.php是为每个控制器调用执行的。因此,该文件有可能在同一页面内多次执行,因此重定向成为一个问题。解决循环问题的最佳方法是什么?
由于
答案 0 :(得分:1)
关于你的“困境”,这听起来像是一个完全不同的问题,我真的会避免在每个控制器调用上调用index.php。这是我认为的根本问题。如果必须,我想您可以使用会话来跟踪用户对各个页面的调用。
但是index.php应该只是一个入口点,任何进一步执行的代码逻辑都应该完全没有意识到它的存在。
关于浏览器检测:
据我所知,目前还没有确定的ZF组件可以为您确定浏览器。有两种方法可以解决这个问题。一种是使用$_SERVER["HTTP_USER_AGENT"]
基于用户代理字符串检查浏览器。
另一方面,当然是客户端检测。大多数JS库提供了执行此操作的方法;因为大多数jQuery用户都知道jQuery已弃用其jQuery.browser
功能,但它们目前仍然可用。
正如http://docs.jquery.com/Utilities/jQuery.browser所示,建议您检查客户端浏览器检测,以检查所需的特定功能。
答案 1 :(得分:1)
您应该在前端控制器插件中执行此操作。根据您的调度过程,有几种方法被调用。
查看http://framework.zend.com/manual/en/zend.controller.plugins.html
答案 2 :(得分:-1)
$i = 0;
if ($i === 0)
{
// put everything currently in index.php into here
$i++;
}