Come usare curl di leggere un file in una variabile PHP

July 15

Come usare curl di leggere un file in una variabile PHP


Uniform Resource Locator client (cURL) è uno strumento a riga di comando e biblioteca (libcurl) per il trasferimento di file su una rete. cURL supporta i protocolli Internet più diffusi, tra cui HyperText Transfer Protocol (HTTP e HTTPS), File Transfer Protocol (FTP), Gopher, Telnet e Lightweight Directory Access Protocol (LDAP). È possibile utilizzare libcurl negli script PHP per recuperare le pagine Web, feed di notizie e altri file su Internet. Se non è necessario salvare una copia locale del file inverosimile, prendere direttamente in variabile. Questo metodo è più veloce, più ordinato e più efficiente rispetto alla creazione di un file locale e l'apertura di esso.

istruzione

1 Inizializzare una sessione CURL chiamando la funzione \ "curl_init \". Questa funzione restituisce un handle cURL è possibile utilizzare con le altre funzioni CURL per configurare e recuperare il file. È possibile fornire l'URL (indirizzo del file) a \ "curl_init, \", per esempio:

$ Curlhandle = curl_init ( 'http://www.whitehouse.gov/feed/blog')
ANDARE

In alternativa, è possibile inizializzare la sessione CURL senza passare alcun parametro a \ "curl_init, \" e impostare l'URL utilizzando la funzione "curl_setopt \" \. Questo metodo è utile se si sta riciclando il manico CURL per scaricare più file.

$ Curlhandle = curl_init ()
ANDARE
curl_setopt ($ curlhandle, CURLOPT_URL, 'http://www.whitehouse.gov/feed/blog');

2 Impostare la sessione CURL per restituire il contenuto inverosimile quando \ "curl_exec \" in modo da poter assegnare i contenuti del file recuperato a una variabile. Impostare la \ "CURLOPT_RETURNTRANSFER \" per \ function "vero \" utilizzando il \ "culr_setopt \":

curl_setopt ($ curlhandle, CURLOPT_RETURNTRANSFER, true)
ANDARE

Se \ "CURLOPT_RETURNTRANSFER \" è impostato a \ "false, \" il \ "curl_exec \" restituisce un valore booleano \ "true \" o \ "false \" per indicare se il file è stato recuperato con successo, e stampare il file . Se si desidera elaborare il contenuto del file (ad esempio, tirando i titoli da un feed news), è necessario acquisire il contenuto del file in una variabile.

3 Chiamare la funzione \ "curl_exec \" per recuperare il file. Passare \ la variabile "curl_exec \" handle cURL. Assegnare i risultati del recupero di una variabile. Se il recupero ha avuto successo, la variabile contiene il contenuto del file. Se il download non riuscito, la variabile contiene il valore \ "false. \"

$ contenuto = curl_exec ($ curlhandle);

4 Chiudere la sessione, non appena si è fatto con esso. Se si utilizza la stessa sessione per recuperare ed elaborare diversi file, lasciarla aperta fino a quando si è fatto. Se avete solo bisogno di recuperare un singolo file, chiudere la sessione, non appena si ottiene il file.

curl_close ($ curlhandle);

5 Scrivere il codice per utilizzare il contenuto del file. Non importa come si utilizza il contenuto del file, sia per la stampa, il salvataggio, la formattazione, analisi o di inviarlo, controllare che l'recuperare era successo prima. Utilizzare un se-blocco per controllare i contenuti variabili. Se la variabile contiene \ "false, \" il trasferimento non è riuscito.

if ($ contenuti == false) {
echo \ "fetch fallito \"
ANDARE
}
altro {
echo $ contenuti
ANDARE
}

Consigli e avvertenze

  • Impostare l'opzione di timeout cURL per mantenere Curl da aspettare troppo a lungo per il file. Il valore numerico (il terzo parametro di \ "curl_setopt \"), istituito per il \ opzioni "CURLOPT_TIMEOUT \" è il numero di secondi di attesa. L'impostazione di questo valore su \ "0 \" disattiva il timeout, causando cURL di aspettare per sempre per il file:
  • curl_setopt ($ curlhandle, CURLOPT_TIMEOUT, 3);