CURL获取页面是否清空?

时间:2018-07-01 22:31:28

标签: php curl

我有一个很奇怪的情况,如下:

这是我的CURL函数:

function get_data($url) {
    $ch = curl_init();
    $timeout = 500;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

我逐行有一个txt文件内容链接。我得到了所有指向数组的链接,并尝试获取内容:

$itemLink = file($LinkFile);
if(empty($itemLink)){
    echo "endFile";
    exit();
}
echo $itemLink[0]; //https://stackoverflow.com
echo get_data($itemLink[0]);

结果返回空,但是当我尝试将直接链接放到我的函数中时:

echo get_data('https://stackoverflow.com');

我当然可以正常显示整页。

有人知道发生了什么事吗?

2 个答案:

答案 0 :(得分:1)

由于您正在使用file()来阅读文档,因此我感到您在URL中出现行尾,而cURL无法处理该请求。

http://php.net/manual/en/function.file.php

  

除非使用FILE_IGNORE_NEW_LINES,否则结果数组中的每一行都将包含该行的结尾。

从网址中删除多余的行尾字符。

$itemLink = file( $LinkFile, FILE_IGNORE_NEW_LINES );

如果这还不够,请使用trim()函数

echo get_data( trim( $itemLink[0] ) );

curl_setopt( $ch, CURLOPT_URL, trim( $url ) );

答案 1 :(得分:-1)

也许是http> https的东西?

以前回答

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

来源:How to use PHP CURL to bypass cross domain