0

对不起,如果这是一个重复的问题。
如果浏览器不是移动设备,我的目标站点会将我重定向到桌面站点。我想解析网站的移动版本(http://mobile.mysite.com)。我不能使用 Curl,因为我的服务器为此被禁用。如果可能的话,移动端的用户代理会是什么??!!

4

4 回答 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);

stream_context_createfile_get_contents

于 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 库:

PHP HttpClient

如果您想获得移动网站,请将用户代理设置为特定的移动浏览器

$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 回答