Есть некоторые условия, которые делают ваш результат пустым.Например:
- Ошибка скручивания.
- Перенаправление без тела ответа, и скручивание не следует за перенаправлением.
- Целевой хост не дает никакого ответаbody.
Итак, здесь вы должны выяснить проблему.
- Для первой возможности используйте
curl_error
и curl_errno
, чтобы подтвердить, что скручивание не было 'ошибка во время выполнения. - Для второго используйте опцию
CURLOPT_FOLLOWLOCATION
, чтобы убедиться, что скручиваемость следует за перенаправлением. - Для третьей возможности мы можем использовать
curl_getinfo
.Возвращает массив, который содержит «size_download».Size_download показывает длину тела ответа.Если он равен нулю, поэтому при печати вы видите пустую страницу.
Еще раз, попробуйте использовать var_dump
, чтобы просмотреть вывод (только для целей отладки).Есть вероятность, что curl_exec
возвращает bool false или null.Если вы напечатаете bool false или null, он покажет пробел.
Вот пример использования всех из них.
<?php
$curl = curl_init();
$url = "https://www.danmurphys.com.au/dm/home";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$output = curl_exec($curl);
$info = curl_getinfo($curl);
$err = curl_error($curl);
$ern = curl_errno($curl);
if ($ern) {
printf("An error occurred: (%d) %s\n", $ern, $err);
exit(1);
}
curl_close($curl);
printf("Response body size: %d\n", $info["size_download"]);
// Debug only.
// var_dump($output);
echo $output;
Надеюсь, это поможет вам.
Обновление:
Вы можете использовать CURLOPT_VERBOSE
для подробного просмотра информации о запросах и ответах.Просто добавьте это
curl_setopt($curl, CURLOPT_VERBOSE, true);
Это не должно быть напечатано, curl напечатает его для вас во время выполнения.