PHP cURL и ob - PullRequest
       26

PHP cURL и ob

0 голосов
/ 08 октября 2010

Кто-то попросил меня помочь ему с cURL сегодня, и в результате я посмотрел функцию, которую я написал некоторое время назад. Мне было интересно, почему я использовал функции ob. Я, вероятно, следовал некоторому учебнику в то время; однако, когда я смотрю на большинство классов cURL, они не используют функции ob ... Я предполагаю, что вопрос в том, что лучше в плане производительности? Что-то не так с кодом ниже? и есть ли лучший способ сделать это?

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$string = ob_get_contents();
ob_end_clean();
return $string;

1 Ответ

1 голос
/ 08 октября 2010

По умолчанию, curl выводит ответ на стандартный вывод. Итак, ваш код буферизирует вывод, а затем обращается к нему с помощью ob_get_contents.

Вы должны использовать CURLOPT_RETURNTRANSFER вместо. Это заставляет curl возвращать ответ от curl_exec.

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$string = curl_exec ($ch);
curl_close ($ch);
return $string;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...