CURL получить страницу Emty? - PullRequest
0 голосов
/ 02 июля 2018

У меня очень странный случай:

Это моя функция 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;
}

У меня есть ссылка на текстовое содержимое файла построчно. Я получил всю эту ссылку на массив и попытался получить содержимое:

$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 голосов
/ 02 июля 2018

Поскольку вы используете file() для чтения своего документа, у меня такое ощущение, что в вашем URL-адресе заканчиваются строки, и cURL не может обработать запрос.

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

Каждая строка в результирующем массиве будет содержать конец строки, если только не используется FILE_IGNORE_NEW_LINES.

чтобы удалить из URL все лишние символы конца строки.

$itemLink = file( $LinkFile, FILE_IGNORE_NEW_LINES );

Если этого недостаточно, используйте функцию trim()

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

или

curl_setopt( $ch, CURLOPT_URL, trim( $url ) );
0 голосов
/ 02 июля 2018

может быть http> https вещь?

ранее ответил

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

источник: Как использовать PHP CURL для обхода кросс-домена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...