Article View: es.comp.os.linux.programacion
Article #13444Re: Abrir página web desde código php
From: Jose A
Date: Sat, 24 Feb 2001 01:25
Date: Sat, 24 Feb 2001 01:25
95 lines
4030 bytes
4030 bytes
Hola
On Thu, 22 Feb 2001 02:20:10 GMT, Cesarnet <cesarnet@teleline.es> wrote:
>Hola a todos:
> Se trata de abrir una p�gina web desde otra utilizando Php. He visto por
>ah� algo con "header" pero no me funciona ni pa tras. Si alguien sabe como
>hacerlo le agradecer�a que lo compartiera.
Aqui te pongo dos ejemplos, el primero de la ayuda de php, el segundo es
un script para coger la cabezera, modificado para que no ense�a la cabezera
y si el resto, me parece que lo vi en el libro de "PHP 4".
Uno cosa, tienes que tener en cuenta, si vas a usar alguno de ellos, que
tienen el incoveniente que al cargar la p�gina referenciada, si tiene anclas
a otras p�ginas, o imagenes, si no las referencia con la ruta completa
fallar� la carga de esas p�ginas y la visualizci�n de las imagenes, o sea:
Tienes la p�gina con una funci�n con uno de estos c�digos en
"~usuario/ejemplos", pues si en la p�gina que cargas tienes un
"<A HREF=directorio/pagina.html>pagina</A>", llamaras a
"~usuario/ejemplos/directorio/pagina.html", y no a
"http://maquina/~usu-pag/directorio/pagina.html" y te fallar�, si la p�gina
est� en otro servidor, o en la p�gina de otro usuario, siendo "~usuario", t� y
"~usu-pag", el de la p�gina que cargas desde la tuya.
Si la forma de llamarlo es "<A HREF=http://host/~usu-pag/directorio/pagina.html"
funcionar� sin problemas.
De todos modos te los posteo, por si te sirven.
El primero:
<?
$fichero = fopen ("http://ruta","r");
if (!$fichero) {
echo "<p>No se pudo abrir la p�gina</p>\n";
exit;
}
while (!feof($fichero)) {
$linea = fgets ($fichero, 1024);
echo $linea;
}
fclose ($fichero);
?>
En ruta va, por ejemplo: "www.php.net", o tambien: "www.php.net/nombre.html"
Tambien puedes poner un "ftp://".
El segundo:
<?
# hosts, puerto, num err, txt err, timeout
$fp = fsockopen ("nombre-host", 80, &$errno, &$errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<BR>\n";
}
else {
fputs ($fp, "GET / HTTP/1.0\r\n\r\n");
while (!$end) {
$line = fgets ($fp,1024);
if (trim($line) == "")
$end = true;
}
while (!feof($fp)) {
$line = fgets ($fp,1024);
echo $line;
}
fclose ($fp);
}
?>
nombre-host, es el nombre del lugar al que te vas a conectar, por ejemplo:
"www.php.net", y el la parte de "GET / HTTP/1.0\r\n\r\n", si pones una ruta
para coger una p�gina, sin indicar el nobre del fichero, para coger el
"index.html", directamente, es mejor que lo pongas as�:
GET /~usuario/ HTTP/1.0\r\n\r\n
Si no lo haces as�, lo m�s seguro es que salga un texto diciendo que la
p�gina ha sido movida, y que sigas el enlace que te pone.
Por supuesto, imagino que los modificaras, para meter esos datos en variables,
y no hacerlo directamente.
El segundo es mucho m�s rapido que el primero, por lo menos en las pruebas que
yo he hecho.
Eso s�, para usar el segundo, el php tiene que venir compilado para usar
sockets.
espero que te sirva.
saludos.
Technical Details
Message-ID:
<slrn99e3c1.552.MAQUI000@localhost.localdomain>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!nntp-relay.ihug.net!ihug.co.nz!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.cwix.com!newsfeed.bcn.ttd.net!news.bcn.ttd.net!MAQUI000References:
<uH_k6.8226$xo2.300052@telenews.teleline.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,c371bbc47850cbca X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-02-24 08:27:02 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!nntp-relay.ihug.net!ihug.co.nz!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.cwix.com!newsfeed.bcn.ttd.net!news.bcn.ttd.net!MAQUI000 From: MAQUI000@NOSPAM.teleline.es (Jose A) Newsgroups: es.comp.os.linux.programacion Subject: Re: Abrir página web desde código php Date: Sat, 24 Feb 2001 02:25:22 +0100 Organization: Telefonica Transmision de Datos Lines: 95 Message-ID: <slrn99e3c1.552.MAQUI000@localhost.localdomain> References: <uH_k6.8226$xo2.300052@telenews.teleline.es> NNTP-Posting-Host: 212-170-162-156.uc.nombres.ttd.es Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit User-Agent: slrn/0.9.6.2 (Linux)