¿Cómo obtener cookies de curl en una variable en PHP?

El cURL que significa URL del cliente se refiere a una biblioteca para transferir datos utilizando varios protocolos compatibles con cookies, HTTP, FTP, IMAP, POP3, HTTPS (con certificación SSL), etc. Este ejemplo ilustrará cómo obtener cookies de PHP cURL en un variable. Las funciones brindan una opción para establecer una devolución de llamada que se llamará para cada línea de encabezado de respuesta. La función recibirá el objeto curl y una string con la línea de encabezado. Junto con su propósito, los requisitos para este ejemplo se describen a continuación:

  • curl_init(): Se utiliza para inicializar un objeto curl.
  • curl_setopt (objeto, parámetro, valor): se utiliza para establecer el valor del parámetro para un determinado objeto curl.
  • curl_exec (objeto): se utiliza para ejecutar la sesión curl actual. Llamado después de configurar los valores para los parámetros de curl deseados.
  • preg_match_all(regExp, inputVariable, OutputVariable): se utiliza para realizar una verificación de expresión regular global.

Ejemplo 1: este ejemplo ilustra cómo obtener cookies de www.amazon.com

<?php
   
// URL to fetch cookies
$url = "https://www.amazon.com/";
   
// Initialize cURL object
$curlObj = curl_init();
   
/* setting values to required cURL parameters.
CURLOPT_URL is used to set the URL to fetch 
CURLOPT_RETURNTRANSFER is enabled curl
response to be saved in a variable 
CURLOPT_HEADER enables curl to include
protocol header CURLOPT_SSL_VERIFYPEER
enables to fetch SSL encrypted HTTPS request.*/
curl_setopt($curlObj,  CURLOPT_URL,  $url);
curl_setopt($curlObj,  CURLOPT_RETURNTRANSFER,  1);
curl_setopt($curlObj,  CURLOPT_HEADER,  1);
curl_setopt($curlObj,  CURLOPT_SSL_VERIFYPEER,  false);
$result = curl_exec($curlObj);
   
// Matching the response to extract cookie value
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi',
          $result,  $match_found);
   
$cookies = array();
foreach($match_found[1] as $item) {
    parse_str($item,  $cookie);
    $cookies = array_merge($cookies,  $cookie);
}
   
// Printing cookie data
print_r( $cookies);
   
// Closing curl object instance
curl_close($curlObj);
?>

Nota: Cada sitio web tiene su propio formato de almacenamiento de cookies de acuerdo con sus requisitos. Por lo tanto, ningún formato específico está disponible para las cookies.
Producción:

Ejemplo 2: este ejemplo ilustra cómo obtener cookies de www.google.com

<?php
  
$url = "https://www.google.com/";
$curlObj = curl_init();
  
curl_setopt($curlObj, CURLOPT_URL, $url);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_HEADER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curlObj);
      
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi',
                $result, $match_found);
$cookies = array();
  
foreach($match_found[1] as $item) {
    parse_str($item, $cookie);
    $cookies = array_merge($cookies, $cookie);
}
      
print_r( $cookies);
curl_close($curlObj);
?>

Producción:

Nota: Los datos personales están borrosos.

Publicación traducida automáticamente

Artículo escrito por chitrankmishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *