Tecnología

Inicio

Cómo usar cURL para leer un archivo en una variable de PHP

Cómo usar cURL para leer un archivo en una variable de PHP


Uniforme cliente Resource Locator (Curl) es una herramienta de línea de comandos y la biblioteca (libcurl) para la transferencia de archivos a través de una red. cURL es compatible con los protocolos de Internet más populares, incluyendo el Protocolo de Transferencia de Hipertexto (HTTP y HTTPS), protocolo de transferencia de archivos (FTP), Gopher, Telnet y Lightweight Directory Access Protocol (LDAP). Puede utilizar libcurl en sus scripts PHP a buscar páginas web, canales de noticias y otros archivos a través de Internet. Si no es necesario guardar una copia local del archivo recuperado, ir a buscar directamente en la variable. Este método es más rápido, más limpio y más eficiente que la creación de un archivo local y abriéndolo.

Instrucciones

1 Iniciar una sesión CURL llamando a la función \ "curl_init \". Esta función devuelve un recurso CURL puede utilizar con otras funciones CURL para configurar y buscar el archivo. Puede proporcionar la dirección URL (dirección de archivo) a \ "curl_init, \", por ejemplo:

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

Como alternativa, puede inicializar la sesión CURL sin pasar ningún parámetro a \ "curl_init, \" y establecer la dirección URL utilizando la función "curl_setopt \" \. Este método es útil si se está reciclando el recurso CURL para traer varios archivos.

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

2 Establecer la sesión cURL para devolver el contenido descabellada cuando \ "curl_exec \" lo que puede asignar el contenido del archivo recuperado a una variable. Ajuste el \ "CURLOPT_RETURNTRANSFER \" a \ opción función "true \" con el \ "culr_setopt \":

curl_setopt ($ curlhandle, CURLOPT_RETURNTRANSFER, true)
IR

Si \ "CURLOPT_RETURNTRANSFER \" está ajustado a \ "falso \" la \ "curl_exec \" devuelve un valor booleano \ "true \" o \ "false \" para indicar si o no el archivo se fue a buscar con éxito, e imprimir el archivo . Si desea procesar el contenido del archivo (por ejemplo, tirando de los titulares de un servicio de noticias), que necesita para capturar el contenido del archivo a una variable.

3 Llame a la función \ "curl_exec \" para buscar el archivo. Pass \ "curl_exec \" la variable CURL. Asignar los resultados de la zona de alcance de una variable. Si la zona de alcance se ha realizado correctamente, la variable contiene el contenido del archivo. Si el fallo en la descarga, la variable contiene el valor de \ "false \".

$ contenidos = curl_exec ($ curlhandle);

4 Cierre la sesión tan pronto como haya terminado con él. Si utiliza la misma sesión se ha podido recuperar y procesar varios archivos, dejarlo abierto hasta que haya terminado. Si sólo necesita buscar un único archivo, cierre la sesión tan pronto como se obtiene el archivo.

curl_close ($ curlhandle);

5 Escribir el código para utilizar el contenido del archivo. No importa cómo se está utilizando el contenido del archivo, que para imprimir, guardar, formatear, analizar o enviarlo, y comprueba que la traiga tuvo éxito por primera vez. Use un bloque si para ver sus contenidos variables. Si la variable contiene \ "false \", la transferencia falló.

if ($ contenidos == false) {
echo \ "fallo en la descarga \"
IR
}
else {
echo $ contenido
IR
}

Consejos y advertencias

  • Configurar la opción de tiempo de espera para mantener el enrollamiento rizo de esperar demasiado tiempo para el archivo. El valor numérico (el tercer parámetro a \ "curl_setopt \") establecido para el \ opciones "CURLOPT_TIMEOUT \" es el número de segundos de espera. Al establecer este valor a \ "0 \" se desactiva el tiempo de espera, causando cURL para esperar por siempre para el archivo:
  • curl_setopt ($ curlhandle, CURLOPT_TIMEOUT, 3);