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);
sólo 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 discutir en los comentarios descubrimos que el problema era que el servidor no resolvía el nombre de host y la página era además un recurso https así que aquí viene su solución temporal (hasta que su serveradmin arregle el nombre resolviendo) .
lo que hice es simplemente hacer ping en graph.facebook.com para ver la dirección IP, reemplazar el nombre de host por la dirección IP y en su lugar darle el encabezado manualmente. Sin embargo, esto hace que el certificado SSL válido por lo que tenemos para suprimir la verificación de 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);
tener en cuenta que la dirección IP puede cambiar y esto es una fuente EROR. también deberías hacer un manejo de errores usando curl_error();
gracias pero obtengo un archivo en blanco. Estoy tratando de encontrar el error –
John, si esto no funciona, verifique su URL. Además, no te olvides de curl_close ($ ch) al final. – Brad
¿Funciona con un archivo de texto plano en lugar de un archivo html? Lo probé con un archivo de texto plano y recibí una página en blanco. –