Quiero recuperar el código HTML de un enlace (página web) en PHP. Por ejemplo, si el enlace es
luego quiero el código HTML de la página que se sirve. Quiero recuperar este código HTML y almacenarlo en una variable PHP.
¿Cómo puedo hacer esto?
Quiero recuperar el código HTML de un enlace (página web) en PHP. Por ejemplo, si el enlace es
luego quiero el código HTML de la página que se sirve. Quiero recuperar este código HTML y almacenarlo en una variable PHP.
¿Cómo puedo hacer esto?
Respuestas:
Si su servidor PHP permite envoltorios de URL fopen, la forma más sencilla es:
$html = file_get_contents('/programming/ask');
Si necesita más control, debería mirar las funciones de cURL :
$c = curl_init('/programming/ask'); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); //curl_setopt(... other options you want...) $html = curl_exec($c); if (curl_error($c)) die(curl_error($c)); // Get the status code $status = curl_getinfo($c, CURLINFO_HTTP_CODE); curl_close($c);
fuente
Además, si desea manipular la página recuperada de alguna manera, es posible que desee probar algún analizador DOM de php. Encuentro PHP Simple HTML DOM Parser muy fácil de usar.
fuente
Es posible que desee consultar las bibliotecas YQL de Yahoo: http://developer.yahoo.com/yql
La tarea en cuestión es tan simple como
select * from html where url = 'http://stackoverflow.com/questions/ask'
Puede probar esto en la consola en: http://developer.yahoo.com/yql/console (requiere inicio de sesión)
También vea el screencast de Chris Heilmanns para ver algunas buenas ideas sobre qué más puede hacer: http://developer.yahoo.net/blogs/theater/archives/2009/04/screencast_collates_distributed_information.html
fuente
Manera simple: uso
file_get_contents()
:$page = file_get_contents('http://stackoverflow.com/questions/ask');
Tenga en cuenta que
allow_url_fopen
debe estartrue
en ustedphp.ini
para poder utilizar envoltorios fopen compatibles con URL.Manera más avanzada: si no puede cambiar su configuración de PHP,
allow_url_fopen
esfalse
por defecto y si ext / curl está instalado, use lacURL
biblioteca para conectarse a la página deseada.fuente
podría usar file_get_contents si desea almacenar la fuente como una variable, sin embargo, curl es una mejor práctica.
$url = file_get_contents('http://example.com'); echo $url;
esta solución mostrará la página web en su sitio. Sin embargo, curl es una mejor opción.
fuente
mira esta función:
http://ru.php.net/manual/en/function.file-get-contents.php
fuente
include_once('simple_html_dom.php'); $url="http://stackoverflow.com/questions/ask"; $html = file_get_html($url);
Puede obtener el código HTML completo como una matriz (formulario analizado) usando este código Descargue el archivo 'simple_html_dom.php' aquí http://sourceforge.net/projects/simplehtmldom/files/simple_html_dom.php/download
fuente
Aquí hay dos formas diferentes y sencillas de obtener contenido de la URL :
1) el primer método
Habilite Allow_url_include desde su alojamiento (php.ini o en algún lugar)
<?php $variableee = readfile("http://example.com/"); echo $variableee; ?>
o
2) el segundo método
Habilite php_curl, php_imap y php_openssl
<?php // you can add anoother curl options too // see here - http://php.net/manual/en/function.curl-setopt.php function get_dataa($url) { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($ch); curl_close($ch); return $data; } $variableee = get_dataa('http://example.com'); echo $variableee; ?>
fuente
también puede usar el método DomDocument para obtener una variable de nivel de etiqueta HTML individual
$homepage = file_get_contents('https://www.example.com/'); $doc = new DOMDocument; $doc->loadHTML($homepage); $titles = $doc->getElementsByTagName('h3'); echo $titles->item(0)->nodeValue;
fuente
$output = file("http://www.example.com");
no funcionó hasta que habilité:allow_url_fopen, allow_url_include,
yfile_uploads
enphp.ini
PHP7fuente
Probé este código y me está funcionando.
$html = file_get_contents('www.google.com'); $myVar = htmlspecialchars($html, ENT_QUOTES); echo($myVar);
fuente