对不起,如果这是一个重复的问题。
如果浏览器不是移动设备,我的目标站点会将我重定向到桌面站点。我想解析网站的移动版本(http://mobile.mysite.com)。我不能使用 Curl,因为我的服务器为此被禁用。如果可能的话,移动端的用户代理会是什么??!!
问问题
651 次
4 回答
2
User-Agent
如果您需要像file_get_contents
请求一样发送自定义标头,PHP 的答案是流上下文:
$opts = array(
'http' => array(
'method' => "GET",
'header' => "Accept-language: en\r\n" .
"Cookie: foo=bar\r\n" .
"User-Agent: Foo Bar Baz\r\n"
)
);
$context = stream_context_create($opts);
file_get_contents($url, false, $context);
于 2012-07-12T09:29:19.977 回答
0
选择一个移动用户代理字符串并使用它。可以从 Google 轻松找到它们。
下面是一些示例代码,说明了如何使用它们file_get_contents()
:
<?php
// The first one I found on Google
$uaStr = 'Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91)';
// Create a stream context
// http://www.php.net/manual/en/context.http.php
$context = stream_context_create(array(
'http'=>array(
'user_agent' => $uaStr
)
));
// The URL
$url = "http://www.example.com/";
// Make the request
$result = file_get_contents($url, FALSE, $context);
于 2012-07-12T09:31:14.653 回答
0
试试看这个 php 库:
如果您想获得移动网站,请将用户代理设置为特定的移动浏览器
$userAgent = "NokiaC5-00/061.005 (SymbianOS/9.3; U; Series60/3.2 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525 3gpp-gba";
setUserAgent($userAgent);
于 2012-07-12T09:31:54.710 回答
0
要在不使用 curl 的情况下在 php 中更改用户代理,您可以尝试以下操作:
<?php
ini_set('user_agent', 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7');
$data = file_get_contents("http://www.mobile.example.com");
?>
PS:从这里获得了 iphone 4 的用户代理!
于 2012-07-12T09:33:24.287 回答