Php 无法抓取远程内容,但可以在浏览器中查看
我真的把这个问题搞糊涂了。。我制作了一个url缩短器网站,并尝试了它的API调用 所以我把这个脚本放在我的一个主机中Php 无法抓取远程内容,但可以在浏览器中查看,php,Php,我真的把这个问题搞糊涂了。。我制作了一个url缩短器网站,并尝试了它的API调用 所以我把这个脚本放在我的一个主机中 <?php $homepage = file_get_contents("http://klik.pw/api?api=BEHbDA19Z3e1&url=http://google.com"); echo $homepage; ?> 它向我显示了一些错误消息,要求输入“url”参数。。为什么会发生这种情况?您可以使用CURL函数 function fil
<?php
$homepage = file_get_contents("http://klik.pw/api?api=BEHbDA19Z3e1&url=http://google.com");
echo $homepage;
?>
它向我显示了一些错误消息,要求输入“url”参数。。为什么会发生这种情况?您可以使用CURL函数
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17');
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 500);
$return = curl_exec($ch);
curl_close($ch);
return $return;
}
echo file_get_contents_curl("http://klik.pw/api?api=BEHbDA19Z3e1&url=http://google.com");
首先检查allow_url_fopen的值,让我们知道您使用的php版本
allow_url_fopen=On
和Im使用PHP5.3.3它可以工作。顺便说一句,你知道为什么file\u get\u contents
给我空白页吗?你试着从我的代码中注释这一行,你会看到同样的错误<代码>//curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.17(KHTML,像Gecko)Chrome/24.0.1312.52 Safari/537.17')所以,我相信URL缩短网站必须有一个用户代理检查。
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17');
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 500);
$return = curl_exec($ch);
curl_close($ch);
return $return;
}
echo file_get_contents_curl("http://klik.pw/api?api=BEHbDA19Z3e1&url=http://google.com");