本文目录一览:
- 1、PHP判断ua调用对应模板的问题
- 2、如何用php伪造浏览器ua?
- 3、如何判断是否是微信访问 微信UA
- 4、php判断是否为手机
- 5、帝国页面里用PHP代码无法获取到不同终端的正确浏览器UA标识!
- 6、PHP可不可以检测出手机的品牌,如三星.小米,苹果,就像qq空间里可以显示出来一样?
PHP判断ua调用对应模板的问题
通过$_SERVER['HTTP_USER_AGENT'] 判断浏览器类型,然后include不同的模版代码。
如何用php伪造浏览器ua?
file_get_contents 和 curl 这俩强悍的函数,在远程抓取时候相当有用处。不过一些网站会根据来访ip是否携带user_agent来判断是正常的浏览器客户端还是机器。所以,我们的任务就是给他们伪造user_agent。
file_get_contents伪造user_agent 方法如下:
ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)');-php检测ua
curl伪造user_agent的方法:
curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)');-php检测ua
附带上curl的完整函数方法:
function curl_get_file_contents($URL)
{
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($c, CURLOPT_HEADER, 1);//输出远程服务器的header信息
curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)'); -php检测ua
curl_setopt($c, CURLOPT_URL, $URL);
$contents = curl_exec($c);
curl_close($c);
if ($contents) {return $contents;}
else {return FALSE;}
}
这样就可以抓取了,user_agent是可以自己修改的。
如何判断是否是微信访问 微信UA
做微信站点的开发的时候,我们有需求只允许微信来访问网页。
可行的一种方法是按照浏览器UA来判断是否是微信。
下面是我抓取到的UA:
1
Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/5.4.1 NetType/WIFI-php检测ua
我们可以通过MicroMessenger关键词来判断是否是微信了。
下面是js和php的方法示例:
function is_weixin(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
} else {
return false;
}
}
PHP:
function is_weixin(){
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
return true;
}
return false;
}
php判断是否为手机
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i";-php检测ua
if(($ua == '' || preg_match($uachar, $ua)) !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
{
echo '手机访问';
}
帝国页面里用PHP代码无法获取到不同终端的正确浏览器UA标识!
应该是这个模板预设了UA
估计是考虑到UA一般情况很少会用到,所以所以用了默认的
你可以去模板里搜对$_SERVER['HTTP_USER_AGENT']设置的地方,注释掉就行了
PHP可不可以检测出手机的品牌,如三星.小米,苹果,就像qq空间里可以显示出来一样?
手机都有一个特有的UA标识
Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36-php检测ua
上面有关键词Android 、Nexus 5。根据这些关键词去判断手机类型,再对应显示出来具体的型号就可以了。
PHP中UA可以通过$_SERVER['HTTP_USER_AGENT']读到。
判断:
$isIPhone = stripos($_SERVER['HTTP_USER_AGENT'], 'iphone') === false;
UA收集和分析是一项比较繁重的工程。