Cómo usar PHP cURL para transferir datos
La mayor ventaja de PHP cURL es su capacidad para gestionar diversas necesidades de transferencia de datos y integrarse sin problemas con las API. En este artículo, aprenderás más sobre la sintaxis y el funcionamiento de PHP cURL.
¿Qué es PHP cURL?
PHP cURL, abreviatura de “Curl URL Request Library”, es una extensión de PHP. Ofrece una manera de enviar peticiones HTTP y comunicarse utilizando diferentes protocolos de red, incluyendo HTTP, HTTPS y FTP. Con cURL, puedes ajustar y gestionar encabezados, parámetros y datos para satisfacer las necesidades de las API.
¿Cómo instalar PHP cURL?
Para utilizar cURL en PHP, normalmente no tienes que instalar cURL por separado, ya que viene como una extensión integrada. Sin embargo, asegúrate de que la extensión cURL está activada en tu configuración de PHP. Puedes confirmar la funcionalidad de cURL creando un archivo PHP y ejecutando en él el siguiente código:
phpinfo();
phpEn la página generada, busca soporte cURL o información similar para ver si PHP cURL está activado. Si cURL no está activado, tendrás que editar el archivo php.ini. Allí, localiza la expresión ;extension=php_curl.dll
para cURL en Windows o ;extension=curl
para cURL en Linux. Para activar la extensión cURL, elimina el punto y coma “;” que precede a la línea. Guarda el archivo y, para que los cambios surtan efecto, reinicia el servidor web.
Aprende las bases más importantes de la programación en PHP en nuestro tutorial de PHP, esencial para utilizar cURL. Para saber más sobre las ventajas y desventajas del lenguaje de programación PHP, puedes consultar las comparaciones entre PHP vs. Python y PHP vs. JavaScript en la Digital Guide de IONOS.
La sintaxis de PHP cURL
La sintaxis de PHP cURL consta de varias funciones y opciones para configurar una sesión cURL, realizar consultas y trabajar con los resultados.
Paso 1: inicializa una sesión cURL
$curl = curl_init();
phpPaso 2: configura las opciones
curl_setopt($curl, CURLOPT_URL, 'https://example.com/api'); // defines the URL
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // sets the result of the query as return value
phpPaso 3: ejecuta la petición cURL
$response = curl_exec($curl);
phpPaso 4: cierra la sesión cURL
curl_close($curl);
phpDeploy Now de IONOS acelera tus ciclos de desarrollo y minimiza el tiempo de inactividad. Descubre estrategias de desarrollo flexibles para tus proyectos web con Deploy Now.
¿Qué funciones cURL existen en PHP?
Hay disponibles varias funciones PHP para crear solicitudes HTTP o subir archivos. También es posible utilizar PHP para recuperar información de una base de datos MySQL y enviarla como JSON a través de cURL.
Estas son algunas de las funciones cURL más importantes en PHP:
- curl_init: inicializa una nueva sesión cURL y devuelve un gestor cURL.
- curl_setopt: establece opciones para la sesión cURL. Aquí se establecen parámetros como la URL, los headers o los métodos de autenticación. También puedes utilizar PHP cURL para especificar los datos POST que se enviarán al servidor.
- curl_exec: ejecuta la sesión cURL y devuelve la respuesta en forma de cadena.
- curl_close: cierra la sesión cURL y libera los recursos.
- curl_setopt_array: define un conjunto de opciones cURL en una sola llamada.
- curl_getinfo: devuelve información sobre la última sesión cURL, como la URL o el código de estado HTTP.
- curl_error: devuelve el mensaje de error de la última petición cURL.
- curl_errno: devuelve el código de error de la última petición cURL.
- curl_multi_init: inicializa un gestor multi-cURL que te permite hacer varias peticiones cURL al mismo tiempo.
- curl_multi_add_handle: añade una sesión cURL a un gestor multi-cURL.
- curl_multi_exec: ejecuta las peticiones multicURL.
- curl_multi_getcontent: devuelve el contenido de la respuesta de una sesión cURL dada en el gestor multi-cURL.
- Registros DNS
- Administración SSL
- Documentación API
Un ejemplo de uso de cURL en PHP
Creando tus propias clases PHP, puedes hacer el código más modular, definir métodos reutilizables y simplificar la implementación de PHP cURL en tus aplicaciones.
He aquí un ejemplo de lo que podría ser una clase PHP junto con PHP cURL GET:
class MyCurlClient {
private $curl;
public function __construct() {
$this->curl = curl_init();
// Further configurations can be made here
}
public function sendRequest($url) {
curl_setopt($this->curl, CURLOPT_URL, $url);
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($this->curl);
return $response;
}
public function close() {
curl_close($this->curl);
}
}
// Using your own class
$myCurl = new MyCurlClient();
$response = $myCurl->sendRequest('https://example.com/api');
echo $response;
$data = json_decode($response, true);
// Output of the data with PHP operators
echo "Post ID: " . $data['id'] . "<br>";
echo "Title: " . $data['title'] . "<br>";
echo "Body: " . $data['body'] . "<br>";
$myCurl->close();
phpEn este ejemplo creamos la clase MyCurlClient que gestiona una sesión PHP cURL en su constructor. El método sendRequest() toma una URL, configura las opciones cURL y ejecuta la petición HTTP GET. Las cadenas de salida se concatenan utilizando operadores PHP. Por último, utilizamos la función close() para finalizar la sesión cURL.