Php 检索web内容的函数/命令(除了从wget或file\u get\u内容)
我需要检索web内容。我通常使用wget,但这次它给了我一个“内部服务器错误”。我还尝试使用file_get_contents(),当我使用安装在Mac中的MAMP时,它可以工作,但当我在服务器上运行它时,它什么也不做,也不会打印错误消息。还有别的办法吗?下面是我使用的代码Php 检索web内容的函数/命令(除了从wget或file\u get\u内容),php,http,Php,Http,我需要检索web内容。我通常使用wget,但这次它给了我一个“内部服务器错误”。我还尝试使用file_get_contents(),当我使用安装在Mac中的MAMP时,它可以工作,但当我在服务器上运行它时,它什么也不做,也不会打印错误消息。还有别的办法吗?下面是我使用的代码 <?php echo "Retrieving Traffic Updates"; $source = file_get_contents('http://www4.honolulu.gov/hpdtraffic/Mai
<?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()也无法工作 我猜您没有启用
fopen
包装器。要进行测试,请执行以下操作:
var_dump(ini_get('allow_url_fopen'));
如果返回false
(或0
,不记得是哪个),则不能使用file\u get\u contents
打开远程文件
如果安装了,您可以使用它访问远程文件。
允许url\u fopen
可能会被您的web主机关闭。你应该看看这是否可以打开。如果没有,可能仍然可用,因此您应该尝试使用该选项。如果您可以使用cURL,请使用该选项。您可以通过执行phpinfo()来确定是否安装了cURL代码>。有关cURL的更多信息:请参考使用PHP的cURL实现获取位于给定URL的内容的示例
我相信您会发现这个过程相当简单。您可以使用:
$html=curl(“http://www4.honolulu.gov/hpdtraffic/MainPrograms/frmMain.asp?sSearch=All+事件&sSort=I_tTimeCreate”) 第4行用句号代替分号。这是您的确切代码示例吗?我运行了代码,它返回:string(1)“1”。我猜它是启用的,但如果它对我有用的话,我会试试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
?>
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);
}