2012-09-04 12 views
8

Sto cercando di elaborare il risultato da $data = curl_exec($ch); invece di stamparlo sullo schermo. Al fine di ottenere che ho impostato l'opzione CURLOPT_RETURNTRANSFER a true in questo modo:CURLOPT_RETURNTRANSFER impostato su true non funziona sul server di hosting

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

Sul mio server locale funziona come previsto, ma quando ho messo lo stesso file on-line sul mio server non funziona.

Quando si imposta CURLOPT_RETURNTRANSFER su false, funziona.

Cosa sto sbagliando?

risposta

17

Se si imposta CURLOPT_RETURNTRANSFER a true o 1 allora il valore restituito da curl_exec sarà il risultato reale dal buon funzionamento. In altre parole, non restituirà TRUE in caso di successo. Sebbene restituirà FALSE in caso di errore.

Come descritto nel ritorno Valori sezione della pagina di manuale curl-exec PHP: http://php.net/manual/function.curl-exec.php

è necessario attivare l'opzione CURLOPT_FOLLOWLOCATION per i reindirizzamenti, ma questo sarebbe un problema se il server è in safe_mode e/o open_basedir è in vigore che può causare problemi con arricciatura pure.

+1

forse ho messo la questione in modo errato. Voglio che il risultato sia restituito nella variabile. Così ho impostato CURLOPT_RETURNTRANSFER su true e dovrebbe farlo ma non su server di hosting ma su localhost funziona bene. forse alcune impostazioni in php ini non sono impostate non so. –

+0

@MarcelGentSimonis Ho modificato la mia risposta, verificare quali sono safe_mode e open_basedir. La tua macchina locale probabilmente li ha disabilitati –

+0

Nota che se non è impostato su true, il ritorno da arricciatura verrà emesso come parte della ** tua ** risposta. mi dedico un'ora per capire che lo strano risultato in cima alla pagina è dovuto al fatto che il ricciolo ha emesso la sua risposta. –

0

Basta provare questa linea:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

dopo:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
+2

Perché? Cosa fa questo? Come potrebbe questo aiutare l'OP? Elabora la tua risposta: dovresti aiutare l'OP a capire cosa c'è che non va, non fargli "provare cose a caso" :-) –

Problemi correlati