cURL Funzioni
PHP Manual

curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setoptImposta una opzione per un trasferimento CURL

Descrizione

bool curl_setopt ( resource $ch , int $option , mixed $valore )

Imposta le opzioni per una sessione CURL identificata dal parametro ch. opzione specifica quale opzione impostare e valore specifica il valore per l'opzione data.

valore dovrebbe essere di tipo booleano per i seguenti valori del parametro opzione):

Option Set value to Notes
CURLOPT_BINARYTRANSFER TRUE restituisce la riga di output quando CURLOPT_RETURNTRANSFER è usata.
CURLOPT_CRLF TRUE per convertire la Unix newlines in CRLF newlines per i trasferimenti.
CURLOPT_DNS_USE_GLOBAL_CACHE TRUE per usare una cache gobale DNS. Questa opzione non è thread-safe ed è abilitata per default.
CURLOPT_FAILONERROR TRUE per terminare in maniera silenziosa se il codice HTTP restituito è maggiore di 300. Il comportamento di default è di restituire la pagina normalmente, ignorando il codice.
CURLOPT_FILETIME TRUE per cercare di recuperare la data di modifica del documento remoto. Si può cercare di ripristinare questo valore usando l'opzione CURLINFO_FILETIME con curl_getinfo().
CURLOPT_FOLLOWLOCATION TRUE per seguire una qualunque "Location: " intestazione inviata dal server come parte dell' header HTTP (notare che è ricorsiva, PHP seguirà come molte "Location: " intestazioni inviate, a meno che CURLOPT_MAXREDIRS sia impostata).
CURLOPT_FORBID_REUSE TRUE forza la chiusura esplicita della connessione quando ha finito il processo e non può essere riutilizzata.
CURLOPT_FRESH_CONNECT TRUE forza l'uso di una nuova connessione invece di usarne una in cache.
CURLOPT_FTP_USE_EPRT TRUE per usare EPRT (e LPRT) quando si opera un download FTP. Usa FALSE per disaibilitare EPRT e LPRT e usare PORT solamente.
CURLOPT_FTP_USE_EPSV TRUE prima cerca un comando EPSV per trasferimento FTP prima di ritornare alla modalità PASV. Imposta a FALSE per disabilitare EPSV.
CURLOPT_FTPAPPEND TRUE per accodare aò file remoto invece di sovrascriverlo.
CURLOPT_FTPASCII Un alias di CURLOPT_TRANSFERTEXT. Usarlo al suo posto.
CURLOPT_FTPLISTONLY TRUE per elencare solamente i nomi di una directory FTP.
CURLOPT_HEADER TRUE per includere l'intestazione in output.
CURLOPT_HTTPGET TRUE per resettare la richiesta HTTP col metodo GET. Dopo che GET è il default, diventa necessario solo se il metodo di richiesta è cambiato.
CURLOPT_HTTPPROXYTUNNEL TRUE per passare attraverso un proxy HTTP fornito.
CURLOPT_MUTE TRUE per essere totalemtne silenzioso nei riguardi di una funzione CURL.
CURLOPT_NETRC TRUE per condurre il file ~/.netrc a trovare username e password per il sito remoto col quale si stabilisce una connessione.
CURLOPT_NOBODY TRUE esclude il corpo dall'output.
CURLOPT_NOPROGRESS TRUE per disabilitare il progress meter per trasferimetni CURL.

Nota:

PHP automaticamente imposta questa opzione a TRUE dovrebbe essere cambiata solo per operazioni di debug.

CURLOPT_NOSIGNAL TRUE per ignorare qualunque funzione CURL che causa l'invio di un segnale a un processo PHP. Ciò è settato come default con le multi-threaded SAPI in modo che le opzioni di timeout possano essere ancora usate. Aggiunto in CURL 7.10.
CURLOPT_POST TRUE per compiere un regolare HTTP POST. Questo POST è il tipo normale di application/x-www-form-urlencoded, più comunemente usata dai form HTML.
CURLOPT_PUT TRUE per HTTP PUT un file. Il file da PUT deve essere impostato con CURLOPT_INFILE e CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER TRUE per restituire il trasferimento come una stringa del valore restituito di curl_exec() al posto di metterlo in output direttamente.
CURLOPT_SSL_VERIFYPEER FALSE per fermare CURL dal verificare i certificati dei peer. Un certificato alternativo di verificare può essere specificato con l'opzione CURLOPT_CAINFO o una directory certificata può essere specificata con l'opzione CURLOPT_CAPATH . CURLOPT_SSL_VERIFYHOST può anche dover essere messa TRUE o FALSE se CURLOPT_SSL_VERIFYPEER è disabilitata (il default è 2). TRUE per default nel CURL 7.10. Default bundle installed as of CURL 7.10.
CURLOPT_TRANSFERTEXT TRUE per usare la modalità ASCII per trasferimenti FTP. Per LDAP, riporta i dati in testo iano invece che in HTML. Sui sistemi Windows, non imposterà STDOUT alla modalità binaria.
CURLOPT_UNRESTRICTED_AUTH TRUE invia username e password quando le seguenti locazioni (che usano CURLOPT_FOLLOWLOCATION), anche quando l'hostname è cambiato.
CURLOPT_UPLOAD TRUE per preparare un upload.
CURLOPT_VERBOSE TRUE per inviare un'informazione di tipo verbose. Scrive l'output su STDERR, o sul file specificato usando CURLOPT_STDERR.

value dovrebbe essere un intero per i seguenti valori del parametro option :

Option Set value to Notes
CURLOPT_BUFFERSIZE La dimensione del buffer da utilizzare per ogni lettura. Non è garantito che questa richiesta venga soddisfatta, comunque. Aggiunto in CURL 7.10.
CURLOPT_CLOSEPOLICY Anche CURLCLOSEPOLICY_LEAST_RECENTLY_USED or CURLCLOSEPOLICY_OLDEST. Ci sono altri tre CURLCLOSEPOLICY_ costanti, ma CURL non li supporta ancora.
CURLOPT_CONNECTTIMEOUT Il numero di secondi da aspettare mentre si cerca di connettersi. Usare 0 per aspettare indefinitamente.
CURLOPT_DNS_CACHE_TIMEOUT Il numero di secondi con cui mantenere le istanze DNS in memoria. Questa opzio è posta a 120 (2 minuti) per default.
CURLOPT_FTPSSLAUTH Il metodo di autenticazione FTP (quando attivato): CURLFTPAUTH_SSL (cerca per primo SSL), CURLFTPAUTH_TLS (cerca per primo SSL), o CURLFTPAUTH_DEFAULT (lascia decidere a CURL). Aggiunto in CURL 7.12.2 e disponibile da PHP 5.1.0
CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE (default, lascia decidere CURL quale versione usare), CURL_HTTP_VERSION_1_0 (forza HTTP/1.0), o CURL_HTTP_VERSION_1_1 (forza HTTP/1.1).
CURLOPT_HTTPAUTH

Il metodo(i) di autenticazione HTTP da usare. Le opzioni sono: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY, eCURLAUTH_ANYSAFE.

Si può usre l'operatore binario | (or) per combinare più di un metodo. In questo caso, CURL testerà il server per vedere quali metodi esso supporta e sceglierà il migliore.

CURLAUTH_ANY è un alias per CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE è un alias per CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLOPT_INFILESIZE La grandezza attesa, in bytes, del file quando si invia (upload) un file a un sito remoto.
CURLOPT_LOW_SPEED_LIMIT La velocità di trasferimento, in bytes al secondo, in cui la trasmissione dovrebbe stare al di sotto durante CURLOPT_LOW_SPEED_TIME secondi affinchè PHP to consideri la trasmissione troppo lenta e la abortisca.
CURLOPT_LOW_SPEED_TIME Il numero di secondi in cui il trasferimento dovrebbe stare al di sotto CURLOPT_LOW_SPEED_LIMIT in modo che PHP consideri la rasmisiosne troppo lenta e la abortisca.
CURLOPT_MAXCONNECTS L'ammontare massimo di connessioni persistenti consentite. Quando il limite è raggiunto, CURLOPT_CLOSEPOLICY viene usata per determinare quale connessione chiudere.
CURLOPT_MAXREDIRS L'ammontare massimo di redirezioni HTTP da seguire. Usare questa opzione insieme a CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT Un numero di porta alternativo a cui connettersi.
CURLOPT_PROXYAUTH Il metodo di autenticazione HTTP da usare per la connessione al proxy. Usare la stessa bitmask come descritto in in CURLOPT_HTTPAUTH. Per l'autenticazione del proxy, solo CURLAUTH_BASIC e CURLAUTH_NTLM sono attualmente supportate. Aggiunto in CURL 7.10.7 e PHP 5.1.0.
CURLOPT_PROXYPORT Il numero di porta del proxy alla quale connettersi. Questo numero può essere anche impostato in CURLOPT_PROXY.
CURLOPT_PROXYTYPE Anche CURLPROXY_HTTP (default) o CURLPROXY_SOCKS5. Aggiunto in CURL 7.10.
CURLOPT_RESUME_FROM L' offset, in byte, per ripristinare un trasferimento.
CURLOPT_SSL_VERIFYHOST 1 per verificare l'esistenza di un nome comune nel certificato SSL peer . 2 per verificare l'esistenza di un nome comune e verificare inoltre che soddisfi l'hostname fornito.
CURLOPT_SSLVERSION La versione SSL (2 or 3) da usare. Per default PHP cercherà di determinare ciò da se stesso, benchè in alcuni casi si possa impostarlo manualmente.
CURLOPT_TIMECONDITION Come CURLOPT_TIMEVALUE è trattato. Usare CURL_TIMECOND_IFMODSINCE per restituire la pagina solo se è stata mpdificata dalla data specificata in CURLOPT_TIMEVALUE. Se non è stata modificata, un "304 Not Modified" header sarà restituito assumendo che CURLOPT_HEADER è TRUE. Usare CURL_TIMECOND_ISUNMODSINCE per l'effetto opposto. CURL_TIMECOND_IFMODSINCE è il default. Aggiunto in PHP 5.1.0.
CURLOPT_TIMEOUT Il numero massimo di secondi per permettere alle funzioni CURL di essere eseguite.
CURLOPT_TIMEVALUE Il tempo in secondi dal 1 Gennaio 1970. Il tempo verrà usato da CURLOPT_TIMECONDITION. Per default, CURL_TIMECOND_IFMODSINCE è usato.

value dovrebbe essere una stringa per i seguenti valori del parametro option :

Option Set value to Notes
CURLOPT_CAINFO Il nome di un file contenente uno o più certificati che verificano la parità. Ciò ha significato solo quando usato in combinazione con CURLOPT_SSL_VERIFYPEER.
CURLOPT_CAPATH Una directory che contiene certificati multipli CA. Usare questa opzione insieme a CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE The contents of the "Set-Cookie: " header to be used in the HTTP request.
CURLOPT_COOKIEFILE Il nome del file che contiene i dati del cookie. Il cookie può essere nel formato Netscape, o solo un semplice header HTTP-style allegato in un file.
CURLOPT_COOKIEJAR Il nome di un file in cui salvare tutti i cookie interni finchè la connessione termina.
CURLOPT_CUSTOMREQUEST Un metodo custom di richiesta da usare al posto di "GET" o "HEAD" quando avviene una richiesta HTTP. Ciò è utile per un "DELETE" o altro, in più nasconde le richieste HTTP. Valori validi sono termini quali "GET", "POST", "CONNECT" e così via; i.e. Non inserire un'intera riga di richieste HTTP qui. Ad esempio, scrivere "GET /index.html HTTP/1.0\r\n\r\n" sarebbe errato.

Nota:

Non fare ciò senza essere sicuri che innanzitutto il vostro server supporti il metodo di richiesta custom.

CURLOPT_EGBSOCKET Come CURLOPT_RANDOM_FILE, ecetto un filename per un Entropy Gathering Daemon socket.
CURLOPT_ENCODING I contenuti di un' "Accept-Encoding: " header. Ciò abilita la decodifica della risposta. Termini supportati sono "identity", "deflate", e "gzip". Se viene impostata una stringa vuota, "", viene inviato un header contenente tutti i tipi di termini supportati.
CURLOPT_FTPPORT Il valore che verrà utilizzato per ottenere un indirizzo IP da usare per l'istruzione FTP "POST" . L'istruzione "POST" indica al server remoto il proprio indirizzo IP a cui connettersi. La stringa può essere un semplice indirizzo IP, un hostname, un nome di un'interfaccia di rete (sotto Unix), o un semplice '-' per usare l'indirizzo Ip del sistema di default.
CURLOPT_INTERFACE Il nome di un'interfaccia di rete di uscita da usare. Può essere il nome di un'interfaccia, un indirizzo IP o un host name.
CURLOPT_KRB4LEVEL Il livello di sicurezza KRB4 (Kerberos 4). Uno qualunque dei valori seguenti (in ordine dal meno al più significativo) sono validi: "clear", "safe", "confidential", "private".. Se la stringa non corrisponde a uno di questi, si usa "private". Impostando questa opzione a NULL disabilita la sicurezza KRB4. Attualmente la sicurezza KRB4 lavora solamente con transazioni FTP.
CURLOPT_POSTFIELDS I dati completi da mandare in post in un'operazione HTTP "POST" .
CURLOPT_PROXY Il proxy HTTP in cui veicolare le richieste.
CURLOPT_PROXYUSERPWD Username e password formattate come "[username]:[password]" da usare per la connessione al proxy.
CURLOPT_RANDOM_FILE IL nome del file da passare al generatore di numeri casuali per SSL.
CURLOPT_RANGE Intervallo(i) di dati da ricevere nel formato "X-Y" dove X o Y sono opzionali. I trasferimenti HTTP supportano inoltre svariati intervalli, separati da virgole nel formato "X-Y,N-M".
CURLOPT_REFERER Il contenuto dell'header "Referer: " da usare in una richiesta HTTP.
CURLOPT_SSL_CIPHER_LIST Elenco di cifre da usare con SSL. Per esempio, RC4-SHA e TLSv1 sono elenchi validi di cifre.
CURLOPT_SSLCERT Il nome di un file contenente un certificato PEM formattato.
CURLOPT_SSLCERTPASSWD La password richiesta per usare il CURLOPT_SSLCERT certificato.
CURLOPT_SSLCERTTYPE Il formato del certificato. Formati ammessi sono "PEM" (default), "DER", e "ENG". Aggiunto in CURL 7.9.3.
CURLOPT_SSLENGINE L' identificatore per il cripto-motore della chiave privata SSL specificata in CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT L' identificatore per il motore crypto usato per cripto-operazioni asimmetriche.
CURLOPT_SSLKEY Il nome di un file contenente una chiave privata SSL.
CURLOPT_SSLKEYPASSWD La password segreta necessaria per usare la chiave privata SSL specificata in CURLOPT_SSLKEY.

Nota:

Siccome questa opzione contiene una password di tipo sensitive, bisogna ricordarsi di mantenere lo script PHP, in cui è contenuto, sicuro.

CURLOPT_SSLKEYTYPE Il tipo di chiave della chiave privata SSL specificata in CURLOPT_SSLKEY. I tipi di chiavi supportate sono "PEM" (default), "DER", e "ENG".
CURLOPT_URL L' URL da raggiungere. E' possibnile impostarla quando si inizializza una sessione con curl_init().
CURLOPT_USERAGENT I contenuti dell'header "User-Agent: " da usare in una richiesta HTTP.
CURLOPT_USERPWD Username e password formattate come "[username]:[password]" da usare per la connessione.

value dovrebbe essere un array per i seguenti valori del parametro option :

Option Set value to Notes
CURLOPT_HTTP200ALIASES Un array di 200 risposte HTTP che saranno trattate come risposte valide e non come errori. Aggiunto in CURL 7.10.3.
CURLOPT_HTTPHEADER Un array di campi di header HTTP da impostare.
CURLOPT_POSTQUOTE Un array di comandi FTP da eseguire sul server dopo che la richiesta FTP è stata eseguita.
CURLOPT_QUOTE Un array di comandi FTP commands da eseguire sul server prima della richiesta FTP.

value dovrebbe essere una risorsa di streaming (usando fopen(), per esempio) per i seguenti valori del parametro option :

Option Set value to Notes
CURLOPT_FILE Il file che il trasferimento dovrebbe scrivere. Il default è STDOUT (la finestra del browser).
CURLOPT_INFILE Il file ce il trasferimento dovrebbe leggere quando si fa un upload.
CURLOPT_STDERR Una locazione alternativa per gli errori di output al posto di STDERR.
CURLOPT_WRITEHEADER Il file su cui viene scritto l' header parte del trasferimento.

value dovrebbe essere una stringa col nome di una funzione di callback valida per i seguenti valori del parametro option :

Option Set value to Notes
CURLOPT_HEADERFUNCTION Il nome della funzione di callback la quale prende due parametri. il primo è la risorsa CURL, il secondo è una stringa con i dati dell'header da scrivere. Usando questa funzione di callback, diventa propria la responsabilità di scrivere i dati di header. Restituisce il numero di bytes scritti.
CURLOPT_PASSWDFUNCTION Il nome della funzione di callback che prende tre parametri. Il primo è la risorsa CURL, il secondo è una stringa contenente la richiesta di password e il terzo è la lunghezza massima della password. Restituisce la stringa che contiene la password.
CURLOPT_READFUNCTION Il nome della funzione di callback che prende due parametri. Il primo è la risorsa CURL, e il secondo è una stringa con i dati da leggere. Usindo questa funzione di callback, diventa propria la responsabilità di leggere i dati. Restituisce il numero di bytes letti. Restituisce 0 per un segnale di EOF.
CURLOPT_WRITEFUNCTION Il nome della funzione di callback che prende due parametri. Il primo è la risorsa CURL, e il secondo è una stringa con i dati da scrivere. Usindo questa funzione di callback, diventa propria la responsabilità di scrivere i dati. Deve restituire l'esatto numero di bytes scritti altrimenti fallisce.

Example #1 Inizializza una sessione CURL nuova e carica una pagina web

<?php
// crea una nuova risorsa CURL
$ch curl_init();

// imposta l'URL e altre opzioni spedifiche
curl_setopt($chCURLOPT_URL"http://www.example.com/");
curl_setopt($chCURLOPT_HEADERfalse);

// carica l' URL e la passa al browser
curl_exec($ch);

// chiude la risorsa CURL e rilascia le risorse di sistema
curl_close($ch);
?>


cURL Funzioni
PHP Manual