PHP ve Curl kullanarak yanıtları gizleme

2 Cevap php

Ben şimdi farklı hatırlıyorum daha etkili bir uzun zaman önce bir kıvrılma fonksiyonunu yeniden duyuyorum. Bu özel durumda, ben bir kullanıcının Twitter kimlik doğrulama ediyorum. Şimdi haliyle İşte kod:

$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);

Bu kimlik doğrulaması için iyi çalışıyor, ama ben yapmak istemiyorum tarayıcınıza tüm JSON yanıt çıktısı.

Ben kıvrılma ile çok aşina değilim. Ben 0 ve false CURLOPT_VERBOSE ayarlama çalıştı, ancak ne çalıştı. Ben bu yerde oldukça basit bir değişiklik olduğunu eminim, ama ben ne olduğunu kaybedersiniz.

Teşekkürler

2 Cevap

Bu seçeneği gerekir:

curl_setopt(CURLOPT_RETURNTRANSFER, true);

Kimden curl docs:

CURLOPT_RETURNTRANSFER: TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.

benim CURL isteklerini kolaylaştırmak yardımcı olmak için bu işlevi yazdı

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;
}

Kullanım örneği

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

curl_http_request($url, $options);