/
Gestión de servidores de producción

cURL en PHP - descarga de datos vía URL

15. 02. 2020

Obsah článku

La biblioteca de PHP `cURL` es una buena manera de descargar datos de un servidor extranjero.

A partir de una consulta, construye una petición HTTP que envía al servidor de destino y, una vez descargada, contiene una API para el manejo (relativamente) sencillo de los datos.

A diferencia de la función nativa file_get_contents (a través de la cual también podemos realizar peticiones HTTP), ofrece unas opciones de configuración mucho mejores y descarga páginas/archivos como un navegador real.

La función file_get_contents utiliza internamente la librería cURL, sólo que no tiene opciones de configuración tan detalladas.

Detección del modo cURL en una solicitud

A menudo es útil detectar si la solicitud actual se hizo a través de cUrl o clásicamente en el navegador.

No hay una implementación directa para esto en PHP, pero podemos escribir una función simple nosotros mismos:

function isCurl(): bool
{
return str_contains($_SERVER['HTTP_USER_AGENT'] ?? '', 'rizo');
}

Si tienes Linux y su Terminal, o estás en un Mac, prueba este comando:

curl https://php.baraja.cz/curl

El comando hace una petición interna a este sitio y devuelve el resultado.

Si la aplicación no detecta una petición cURL, el HTML se devolverá como si la petición procediera del navegador. Sin embargo, dado que se detectan los tipos de solicitud, nada impide que devolvamos un artículo Markdown depurado.

La ventaja es que los datos están mucho más limpios. Mostramos el HTML formateado al usuario en el navegador, pero sólo el contenido básico al robot.

Uso detallado de la API en PHP

Si buscas un uso detallado de cUrl, te recomiendo que leas la documentación oficial, que siempre está actualizada.

Para un uso casual, existe una biblioteca Guzzle que maneja

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
3.