【发布时间】:2009-09-28 06:19:48
【问题描述】:
我正在拼命寻找最适合开发 .mobi 网站的 PHP 5 框架。
它应该包含的一个主要功能是对不同手机的浏览器识别,以便该网站可以在所有类型的手机上正常工作?
【问题讨论】:
标签: php mobile-website mobile-phones
我正在拼命寻找最适合开发 .mobi 网站的 PHP 5 框架。
它应该包含的一个主要功能是对不同手机的浏览器识别,以便该网站可以在所有类型的手机上正常工作?
【问题讨论】:
标签: php mobile-website mobile-phones
CakePHP 作为内置 RequestHandler 组件的一部分,根据大量已知设备检查用户代理字符串,因此可以自动向这些客户端显示不同的内容。
这是它与之比较的列表:
iPhone、MIDP、AvantGo、黑莓、J2ME、Opera Mini、DoCoMo、NetFront、诺基亚、PalmOS、PalmSource、portalmmm、Plucker、ReqwirelessWeb、索尼爱立信、Symbian、UP.Browser、Windows CE、Xiino
即使您不使用 CakePHP,您也可以查看该文件的源代码以了解有关它如何处理这些请求的更多信息。
【讨论】:
我还没有听说过专门针对移动客户端的 PHP 框架。如果我是你,我不会试图找到一个专门的框架,而只是定义你的一般需求,看看哪个框架能最好地满足它们。不同客户的识别可以很容易地集成到任何现有的框架中。
【讨论】:
Codeigniter 有一个名为 User Agent 的类。
但是,您可能必须为移动浏览器创建自己的类。
用户代理类提供的功能有助于识别有关浏览器、移动设备或访问您网站的机器人的信息。此外,您还可以获得推荐人信息以及语言和支持的字符集信息。
示例: 初始化 User Agent 类时,它将尝试确定浏览您网站的用户代理是 Web 浏览器、移动设备还是机器人。如果平台信息可用,它也会收集平台信息。
$this->load->library('user_agent');
if ($this->agent->is_browser())
{
$agent = $this->agent->browser().' '.$this->agent->version();
}
elseif ($this->agent->is_robot())
{
$agent = $this->agent->robot();
}
elseif ($this->agent->is_mobile())
{
$agent = $this->agent->mobile();
}
else
{
$agent = 'Unidentified User Agent';
}
echo $agent;
echo $this->agent->platform(); // Platform info (Windows, Linux, Mac, etc.)
【讨论】:
移动浏览器,如桌面浏览器,都有自己的问题和“特殊需求”,因此最好检查一下您输出到哪个浏览器,因为它可能会极大地影响输出。
【讨论】: