file_get_contents不会返回源代码

时间:2015-06-24 16:24:11

标签: php http-status-code-403

执行此代码时:

{{1}}

我收到此错误:

  

警告:file_get_contents(http://www.zahnarzt-gisler.ch):失败了   开放流:HTTP请求失败! HTTP / 1.1 403禁止进入   /home/httpd/vhosts/your-click.ch/httpdocs/wp-content/themes/your-click/ajax-request.php   第146行布尔(假)

我不知道为什么它会返回false,因为当我更改网址时,例如http://www.google.com或任何其他网址,它将起作用并返回页面的源代码。

我想这个网址肯定有问题,但这对我来说似乎很奇怪,因为它的网址是可用的。

2 个答案:

答案 0 :(得分:3)

网站所有者可以禁止您在不询问的情况下抓取数据。

答案 1 :(得分:2)

您可以抓取页面,但必须设置用户代理。卷毛是要走的路。

file_get_contents()是一个简单的螺丝刀。非常适合简单的GET请求,其中标头,HTTP请求方法,超时,cookiejar,重定向和其他重要事项无关紧要。

<?php

$config['useragent'] = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0';

$ch = curl_init();

// Set the url, number of GET vars, GET data
curl_setopt($ch, CURLOPT_URL, 'http://www.zahnarzt-gisler.ch');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_USERAGENT, $config['useragent']);

// Execute request
$result = curl_exec($ch);

curl_close($ch);

echo $result;

?>