2010-04-08 9 views
18

Sto usando php 5.3.2 e quando eseguo un arricciatura, visualizza il risultato direttamente senza aggiungere una funzione di stampa o eco.Curl visualizza automaticamente il risultato?

Ecco il mio codice:

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

Cosa c'è di sbagliato con il mio codice e perché visualizza il risultato?

risposta

34

Per impostazione predefinita, l'estensione di arricciatura stampa il risultato.

È necessario attivare l'opzione CURLOPT_RETURNTRANSFER, in questo modo:

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

Dopo di che l'opzione è abilitata, curl_exec tornerà il risultato, invece.

+0

Grazie Brian;) – Emily

+1

"Dal PHP 5.1.3, questa opzione non ha effetto: l'uscita grezzo verrà sempre restituito quando CURLOPT_RETURNTRANSFER viene utilizzato". – Mawg

-1

dopo php 5.1 arricciatura mostra sempre i risultati come è possibile visualizzare sul documentario. per evitare che semplicemente fare:

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>"; 
Problemi correlati