2009-04-23 4 views
2

Я многократно использую функцию завитка, которая действует по-другому, чем я помню. В этом конкретном случае я проверяю учетные данные пользователя Twitter. Вот код, как она стоит сейчас:Скрытие ответов с использованием PHP и Curl

$cred = $_POST['twitter_username'].':'.$_POST['twitter_password']; 
$url = "http://twitter.com/account/verify_credentials.json"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_GET, 0); 
curl_setopt($ch, CURLOPT_USERPWD, $cred); 
$result = curl_exec ($ch); 
curl_close ($ch); 

Это работает отлично для аутентификации, но выводит весь ответ JSON в браузер, который я не хочу делать.

Я не очень хорошо знаком с завитом. Я попытался установить CURLOPT_VERBOSE на 0 и false, но не работал. Я уверен, что это где-то довольно простое изменение, но я теряю то, что есть.

Благодаря

ответ

18

Вам нужен этот вариант:

curl_setopt(CURLOPT_RETURNTRANSFER, true); 

Из curl docs:

CURLOPT_RETURNTRANSFER: TRUE, чтобы вернуть передаче в виде строки возврата значения curl_exec () вместо выдает его напрямую.

+1

Awesome, спасибо тонну! – Evan

+1

Вы также можете всегда использовать ob_start() и ob_end_clean() или ob_get_clean(), чтобы временно уловить все выходные данные из PHP, хотя ответ Roborg - правильный путь в этом случае. – Randy

3

я написал эту функцию, чтобы помочь упростить мой CURL просит

function curl_http_request ($url, $options) 
{ 
    $handle = curl_init($url); 
    curl_setopt_array($handle, $options); 
    ob_start(); 
    $buffer = curl_exec($handle); 
    ob_end_clean(); 
    curl_close($handle); 
    return $buffer; 
} 

пример использования

$options = array(
    CURLOPT_RETURNTRANSFER => TRUE, 
    CURLOPT_USERPWD => $cred 
); 

curl_http_request($url, $options); 
+0

Работайте отлично, Ницца –

Смежные вопросы