Vía sockets:
Vía file_get_contents://
f
unción que solicita la web mediante socket
function getcontent($server, $file
=
'/index.php'
, $port
=
80
){
$contenido = "";
$ip = gethostbyname($server);
$fp = fsockopen($ip, $port);
if(!$fp){
return "Inaccesible";
}else{
$crlf = "\r\n";
$cabecera= 'GET ' . $file . ' HTTP/1.0' . $crlf
.'Host: ' . $server . $crlf
.$crlf;
fputs($fp, $cabecera);
while (!feof($fp)){
$contenido
.= fgets($fp, 1024);
}
fclose($fp);
$contenido = substr($contenido
, strpos($
contenido
, "\r\n\r\n") + 4);
return $contenido;
}
}
echo getcontent('www.evobas.org');
?>
$contenido
=file_get_contents('http://www.kobox.org/index.php');
echo $contenido
;
?>
Vía file:$contenido
=implode('',file('http://www.indomita.org/index.html'));
echo $contenido
;
?>
Vía fopen:$f=
'http://blog-indomita.blogspot.com/index.html';
$fp=fopen($f,'r');
$contenido='';
if(!$fp){
$contenido=
"Inaccesible";
}else{
while(!feof($fp))
$contenido
.=fgets($fp,1024);
fclose($fp);
}
echo $contenido
;
?>
Vía Curl: $ch =
curl_init("http://www.ventadiscos.indomita.org/index.php");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$contenido
= curl_exec ($ch);
curl_close ($ch);
echo $contenido
;
?>
Vía Control de Salida ob_:
ob_start
(
)
;
include
(
"
http://www.google.com"
)
;
$contenido=ob_get_contents(
)
;
ob_clean
(
)
;
echo
$
contenido
;
?>
Algunos métodos necesitan tener activada la opción allow_url_fopen de PHP (php.ini).
5 comentarios:
Hola, intenté acceder al contenido de una página externa con iframe y DOM pero no pude, lo que intento es leer automáticamente algún dato contenido en ella así lo puedo procesar. ¿Hay alguna forma de hacerlo con html básico?. Gracias :).
Es imposible hacerlo con html, necesitas utilizar mínimo javascript e ingeniártelas para leer los valores del iframe cada x tiempo (cosa que me da que es bastante complicado de hacer)
lo aconsejable es utilizar ajax si vas a relizar las peticiones cada x segundos o php si solamente necesitas hacerla una vez
los métodos que propongo son para hacerlo desde php, pero podrías llamarlos desde ajax
Estas mal desde el dom no se puede leer un archivo externo de otro host aunquesea desde un frame, en js, y con el query de ajax tampoco, es solo local
Buenas, me ha sido de muchísima utilidad este post. Llevaba horas (muuchas) buscando alguna forma de leer un xml desde php, ya que mi hosting tiene el allow a "off" y no había forma.
Finalmente he usado la lectura que has colgado via sockets, como si fuera una web y la he pasado a xml con el simple_xml.
Muchísimas gracias y enhorabuena por tu trabajo.
Buen post, gracias.
Publicar un comentario