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

时间:2014-05-13 10:47:35

标签: php

说真的,我对这个问题感到困惑。我做了一个网址缩短网站,并尝试了它的API调用。

所以我把这个脚本放在我的托管

<?php 
$homepage = file_get_contents("http://klik.pw/api?api=BEHbDA19Z3e1&url=http://google.com");
echo $homepage; 
?>

我有空白页面。我用我的3个不同的服务器和所有产生空白页面尝试了这个脚本..

然后我拿出http://klik.pw/api?api=BEHbDA19Z3e1&url=http://google.com并在我的浏览器中打开它,瞧,它显示了我想用php代码抓取的输出..

任何人都知道为什么我的php无法获取结果,但我的浏览器可以查看它?

然后我尝试删除php脚本中url中的部分参数

<?php
$homepage = file_get_contents("http://klik.pw/api?api=BEHbDA19Z3e1");
echo $homepage;
?>

它向我显示一些错误消息要求输入“url”参数..为什么会发生这种情况??????

1 个答案:

答案 0 :(得分:1)

您可以使用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");