使用&的URL但不是&

时间:2015-06-24 21:25:05

标签: php url file-get-contents urlencode

我有这个链接,工作正常。

http://a810-bisweb.nyc.gov/bisweb/PropertyProfileOverviewServlet?boro=3&houseno=512&street=bedford%20ave&requestid=0&s=A03C41B885B461E4F46BD08866A7430E

我想获取此网址的内容,但问题是file_get_contents内容转换&&

http://a810-bisweb.nyc.gov/bisweb/PropertyProfileOverviewServlet?boro=3&houseno=512&street=bedford%20ave&requestid=0&s=A03C41B885B461E4F46BD08866A7430E

哪个不起作用。

$url = "http://a810-bisweb.nyc.gov/bisweb/PropertyProfileOverviewServlet?boro=3&houseno=512&street=bedford%20ave&requestid=0&s=A03C41B885B461E4F46BD08866A7430E";
$content = file_get_contents($url);
echo $content;

它会产生错误。

$url = "http://www.google.com";
$content = file_get_contents($url);
echo $content;

工作正常。

1 个答案:

答案 0 :(得分:2)

如果没有为请求设置User-Agent,我会收到403禁用错误。

此代码有效:

<?php

$url = "http://a810-bisweb.nyc.gov/bisweb/PropertyProfileOverviewServlet?boro=3&houseno=512&street=bedford%20ave&requestid=0&s=A03C41B885B461E4F46BD08866A7430E";

$opts = array(
    'http' => array('header' => 'User-Agent: test'),
);

$ctx = stream_context_create($opts);

$content = file_get_contents($url, false, $ctx);
var_dump($content);

默认情况下,该网站不允许使用PHP用户代理,因此您需要使用流上下文指定一个或使用其他库(如cURL)来获取内容。

尝试使用file_get_contents获取远程URL时,这是一个常见问题。