Manuale PHP
Indietro |  | Avanti

# curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt -- Imposta 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, e CURLAUTH_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. |

Esempio 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($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, false); // carica l' URL e la passa al browser curl_exec($ch); // chiude la risorsa CURL e rilascia le risorse di sistema curl_close($ch); ?>`

Indietro | Partenza | Avanti
curl_multi_select | Risali | curl_version