Php 无法抓取远程内容,但可以在浏览器中查看

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

我真的把这个问题搞糊涂了。。我制作了一个url缩短器网站,并尝试了它的API调用

所以我把这个脚本放在我的一个主机中

<?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')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");