我有一个很奇怪的情况,如下:
这是我的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');
我当然可以正常显示整页。
有人知道发生了什么事吗?
答案 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);