php怎么判断访问端是移动端还是pc端

2024-11-08 08:44:17
推荐回答(3个)
回答(1):

2002年到2010年这之间php异军突起的主要原因,是因为互联网尤其是pc端的崛起,那时快速迭代开发,是所有中小企业最大的需求,管你什么接口速度,运行效率,单线程还是多线程库多还是库少,只要能在短时间内把网站搞起来就行。

直到2010年以后移动端的出现app的使用大幅度超过pc端,前后端开始逐步分离,php本身可以嵌入html代码就不再是特别大的优势了,尤其php对进程线程协程的支持不够使得一些app性能需求无法满足,因此php更多开始和其他语言混用,甚至被其他像go,python这样的语言压制并抢占份额。

虽然说总体上我对php的发展还是乐观的,毕竟社区,体量,易用性摆在那里,尤其是php8即将诞生。但是随着移动互联网逐渐走向尾声,app开发对性能要求的更高php在某些方面的劣势也越来越明显。因此对于php的培训减少并不奇怪。

回答(2):

function is_mobile_request()
{
$_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';
$mobile_browser = '0';
if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))
$mobile_browser++;
if ((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']), 'application/vnd.wap.xhtml+xml') !== false))
$mobile_browser++;
if (isset($_SERVER['HTTP_X_WAP_PROFILE']))
$mobile_browser++;
if (isset($_SERVER['HTTP_PROFILE']))
$mobile_browser++;
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'], 0, 4));
$mobile_agents = array(
'w3c ', 'acs-', 'alav', 'alca', 'amoi', 'audi', 'avan', 'benq', 'bird', 'blac',
'blaz', 'brew', 'cell', 'cldc', 'cmd-', 'dang', 'doco', 'eric', 'hipt', 'inno',
'ipaq', 'java', 'jigs', 'kddi', 'keji', 'leno', 'lg-c', 'lg-d', 'lg-g', 'lge-',
'maui', 'maxo', 'midp', 'mits', 'mmef', 'mobi', 'mot-', 'moto', 'mwbp', 'nec-',
'newt', 'noki', 'oper', 'palm', 'pana', 'pant', 'phil', 'play', 'port', 'prox',
'qwap', 'sage', 'sams', 'sany', 'sch-', 'sec-', 'send', 'seri', 'sgh-', 'shar',
'sie-', 'siem', 'smal', 'smar', 'sony', 'sph-', 'symb', 't-mo', 'teli', 'tim-',
'tosh', 'tsm-', 'upg1', 'upsi', 'vk-v', 'voda', 'wap-', 'wapa', 'wapi', 'wapp',
'wapr', 'webc', 'winw', 'winw', 'xda', 'xda-'
);
if (in_array($mobile_ua, $mobile_agents))
$mobile_browser++;
if (strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)
$mobile_browser++;
// Pre-final check to reset everything if the user is on Windows
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)
$mobile_browser = 0;
// But WP7 is also Windows, with a slightly different characteristic
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)
$mobile_browser++;
if ($mobile_browser > 0)
return true;
else
return false;
}

请采纳

回答(3):

PHP基本语法详解
您无法在浏览器中通过查看源文档的方式来查看 PHP 的源代码 - 您只能看到 PHP 文件的输出,即纯粹的 HTML。这是因为在结果返回浏览器之前,脚本就已经在服务器执行了。
PHP标记
在之前的的例子中的PHP代码是以“”为结束,这类似于所有的HTML标记,因为它们都是以小于号为开始,以大于号为结束的。这些符号就叫做PHP标记。
PHP标记中有4中不同的风格供我们使用
*XML风格

这是我们以后将使用的标记风格。他是PHP推荐使用的标记风格,服务器管理员不能禁用这种风格的标记,因此可以保证正在所有的服务器上使用这种风格的标记,特别是编写用于不同服务器环境的应用程序时,这种标记风格尤为重要。这种风格的标记可以在XML(可扩展置标语言)文档中使用,如果打算在站点中使用XML,就必须使用这种风格的标记。
*简短风格

这种标记风格是最简单的,但要使用这种标记字符,必须在配置文件中启用short_open_tag选项,或者启用短标记选项编译PHP.我们不推荐使用这种标记,因为虽然该标记风格是当前默认启用的,但是系统管理员偶尔会禁用它,它会干扰XML文档的声明。
*SCRIPT风格
这种标记风格是最长的,使用过javascript或vbscript的人就会熟悉这种风格

*ASP风格
这种标记风格和ASP或ASP.NET的标记风格相同。如果在配置文件中启用了asp_tags选项就可以使用它
<% echo (“ASP的风格的标记”); %>
PHP输出语句
有两种通过 PHP 来输出文本的基础指令:echo 和 print。在上面的例子中,我们使用了 echo 语句来输出文本 "Hello World"。