2010-04-08 21 views
18

php 5.3.2 kullanıyorum ve bir kıvrımı çalıştırdığımda, sonucu bir baskı veya eko işlevi eklemeden doğrudan görüntüleyebilirsiniz.Curl sonucu otomatik olarak görüntülüyor musunuz?

<?php 
$pvars = array('query' => 'ice age', 'orderby' => 'popularity'); 
$timeout = 30; 
$myurl = "http://www.website.com"; 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $myurl); 
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars); 
$xml = curl_exec($curl); 
curl_close ($curl); 
?> 

Ya benim koduyla yanlış ve sonucu görüntüler neden: Burada

benim kodudur?

cevap

34

Varsayılan olarak, kıvrılma uzantısı sonucu yazdırır.

Çok gibi CURLOPT_RETURNTRANSFER seçeneğini etkinleştirmeniz gerekir: bu seçenek etkinleştirildiğinde

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

sonra curl_exec yerine, sonuç dönecektir. Php 5,1 kıvrımından sonra her zaman belgeselde görebileceğiniz sonuçları görüntüler.

+0

Teşekkür Brian;) – Emily

+1

"PHP 5.1.3 itibaren, bu seçenek hiçbir etkisi yoktur: CURLOPT_RETURNTRANSFER kullanıldığında ham çıktı daima iade edilecektir". – Mawg

-1

Bunu önlemek için basitçe yapın:

echo "< span style='display:none'>"; 
$pvars = array('query' => 'ice age', 'orderby' => 'popularity'); 
$timeout = 30; 
$myurl = "http://www.website.com"; 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $myurl); 
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars); 
$xml = curl_exec($curl); 
curl_close ($curl); 

echo"< /span>";