Saltar al contenido

php: obtén el código fuente html con cURL

Solución:

Intente lo siguiente:

$ch = curl_init("http://www.example-webpage.com/file.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);

Solo recomendaría esto para archivos pequeños. Los archivos grandes se leen como un todo y es probable que produzcan un error de memoria.


EDITAR: después de un poco de discusión en los comentarios, descubrimos que el problema era que el servidor no podía resolver el nombre de host y la página era además un recurso HTTPS, así que aquí viene su solución temporal (hasta que el administrador de su servidor corrija la resolución del nombre).

lo que hice fue hacer ping a graph.facebook.com para ver la dirección IP, reemplazar el nombre de host con la dirección IP y, en su lugar, especificar el encabezado manualmente. Sin embargo, esto invalida el certificado SSL, por lo que debemos suprimir la verificación entre pares.

//$url = "https://graph.facebook.com/19165649929?fields=name";
$url = "https://66.220.146.224/19165649929?fields=name";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: graph.facebook.com'));
$output = curl_exec($ch);
curl_close($ch); 

Tenga en cuenta que la dirección IP puede cambiar y esta es una fuente de error. también deberías hacer un poco de manejo de errores usando curl_error();.

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);

Fuente: http://www.christianschenk.org/blog/php-curl-allow-url-fopen/

Prueba http://php.net/manual/en/curl.examples-basic.php 🙂

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

$output = curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

Como dice la documentación:

La idea básica detrás de las funciones cURL es que inicializar una sesión cURL usando curl_init (), luego puede configurar todas sus opciones para la transferencia a través de curl_setopt (), luego puede ejecutar la sesión con curl_exec () y luego termine su sesión usando el curl_close ().

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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