用于检索Web内容的函数/命令(除了wget或file_get_contents之外)

时间:2010-12-22 20:03:09

标签: php http

我需要检索网页内容。我通常使用wget,但这次它给了我一个“内部服务器错误”。我也尝试使用file_get_contents(),当我在我的Mac上安装MAMP时它可以工作,但是当我在我们的服务器上运行它时,它没有做任何事情并且没有打印错误消息。有没有其他方法可以做到这一点?以下是我使用的代码。

<?php
echo "Retrieving Traffic Updates";
$source = file_get_contents('http://www4.honolulu.gov/hpdtraffic/MainPrograms/frmMain.asp?sSearch=All+Incidents&sSort=I_tTimeCreate');
echo $source;
?>

提前致谢!!


我不知道如何回复所有人,所以我只是在这里添加。 CURL完美地工作。非常感谢你们。 我只是要问,为什么即使在php.ini中启用了file_get_contents()也无法工作?

6 个答案:

答案 0 :(得分:5)

您可以使用cURL

<?php 
echo "Retrieving Traffic Updates";
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www4.honolulu.gov/hpdtraffic/MainPrograms/frmMain.asp?sSearch=All+Incidents&sSort=I_tTimeCreate"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$source = curl_exec($ch); 
curl_close($ch);      
echo $source
?>

答案 1 :(得分:1)

我猜你没有启用fopen包装器。要测试,请执行:

var_dump(ini_get('allow_url_fopen'));

如果这返回false(或0,无法记住哪个),则无法使用file_get_contents打开远程文件。

如果安装了cURL,您可以使用它来访问远程文件。

答案 2 :(得分:1)

您的网络托管服务商可能会关闭

allow_url_fopen。您应该看看是否可以打开它。如果没有,cURL可能仍然可用,因此您应该尝试使用它。

答案 3 :(得分:1)

如果您可以使用cURL,请使用它。您可以通过执行phpinfo();来确定是否安装了cURL。有关cURL的更多信息:PHP: cURL

答案 4 :(得分:1)

请参考http://davidwalsh.name/download-urls-content-php-curl以获取使用PHP的CURL实现来获取位于给定URL的内容的可靠示例。

我相信你会发现这个过程非常简单。

答案 5 :(得分:1)

function curl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    return curl_exec($ch);
    curl_close ($ch);
}

$ html = curl(“http://www4.honolulu.gov/hpdtraffic/MainPrograms/frmMain.asp?sSearch=All+Incidents&sSort=I_tTimeCreate”);