带有更改用户代理的上下文的file_get_contents不起作用

时间:2017-05-18 13:39:28

标签: php

我正试图获取一个页面的读取数量。

enter image description here

网址为:https://mp.weixin.qq.com/s/NPavBeHc8VdWXeSL6kfLRg (您必须激活移动用户代理才能看到读取和相似的号码。页面的左下角有。 您必须刷新页面。)

问题是,当访问该网站的移动用户代理不是隐藏时,会读取相同的号码。

所以我尝试使用file_get_contents()和一个上传用户代理的上下文,其他stackoverflow帖子说。但是没有用:(。

有我的代码:

$url = 'https://mp.weixin.qq.com/s/NPavBeHc8VdWXeSL6kfLRg';


$opts = array('http' =>
    array(
        'header'  => 'User-agent: Mozilla/5.0 (Linux; Android 4.4.4; HM NOTE 1LTEW Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 MicroMessenger/6.0.0.54_r849063.501 NetType/WIFI',
    )
);

$context  = stream_context_create($opts);

$result = file_get_contents($url, false, $context);

print_r($result);

我还尝试用

修改php.ini
  

user_agent =" Mozilla / 5.0(Linux; Android 6.0; Nexus 5 Build / MRA58N)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 58.0.3029.110 Mobile Safari / 537.36"

1 个答案:

答案 0 :(得分:0)

来自HTTP context options

  

<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:IDSP="http://ns.adobe.com/InDesign/soap/"> <SOAP-ENV:Body> <IDSP:RunScriptResponse> <errorNumber>0</errorNumber> <scriptResult> <data xsi:type="xsd:string">success</data> </scriptResult> </IDSP:RunScriptResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

     

使用user_agent string标头发送的值。仅使用此值   如果上面的User-Agent:上下文选项中未指定user-agent。

如果您选择header,则还需要设置标题名称,而不仅仅是值!