Crear un Proxy en PHP

  • 10/03/2007
  • 1:19 pm
  • unijimpe

Un Proxy es una herramienta que lee un archivo remoto y lo convierte en un archivo local, esto para evitar problemas de seguridad como crossdomain. Esto es que la mayoría de aplicaciones en Internet (Flash, Ajax) que acceden a datos deben estar en el mismo dominio que el origen de los datos de lo contrario no pueden acceder a la información.

Implementación
Para implementar un proxy en PHP se puede utilizar la función readfile que toma un archivo y lo imprime. Por ejemplo si deseamos escribir el RSS de este blog a un archivo local se tendría:

  1. <?php
  2. $vfile = "http://blog.unijimpe.net/rss/";
  3. header("Content-type: text/xml");
  4. readfile($vfile);
  5. ?>

Hay que notar que es necesario agregar un header que indique el tipo de contenido que estamos enviando. En nuestro caso enviamos contenido XML. Ahora si deseamos que se le pase la ruta a leer por parámetro GET se tendría:

  1. <?php
  2. $vfile = "http://blog.unijimpe.net/rss/";
  3. if (isset($_GET['rss'])){
  4.    $vfile = $_GET['rss'];
  5. }
  6. header("Content-type: text/xml");
  7. readfile($vfile);
  8. ?>

Como verán es un tema muy sencillo pero que nos puede ahorrar muchos problemas pues es muy común leer información de dominios externos.

Posts Relacionados

  • Uncategorized

Total de Comentarios: 17

Publicidad
20/05/2007
6:01 pm

Aquí os dejo un proxy en php: http://www.anonimizador.com

maic
16/07/2007
2:56 pm

Hola,

He probado a usar este tipo de proxy y funciona perfectamente pero para leer ciertos XML no va.

Estoy intentando leer un xml que es generado dinámicamente y lo que me devuelve en el responseXML es el código ya interpretado a HTML (tablas, etc.).

En cambio, leyendo otros xmls funciona bien. Cómo lo puedo hacer para leer ese XML dinámico?

10/09/2007
11:20 pm

Hola,

he tenido varios problemas ultimamente con el tema del crossdomain al intentar crear un reproductor flash de una radio online (streaming).

Al sonido se accede por http://88.191.70.244:8612/ y el problema es que en mi PC lo reproduce pero al subirlo al servidor no lo reproduce (vease que no es el mismo servidor el que aloja el flash y el que aloja la web).

Como podria hacer un proxy para http://88.191.70.244:8612 ?

El problema es que el flujo de datos es sonido y no puedo usar la funcion readfile().. ¿o si?

Jose
23/10/2007
8:12 am

Hola disculpa es que no se mucho de PHP
Mira yo ya cree el RSS lector en mi PC funciona normal. Si lee normal.
De ahi cuando lo subo a un host y lo ejecuto no funciona.
Ahora estuve leyendo y dices que hay que hacer lo que esta arriba, pero como hago eso prfavor?
Donde intersecto esos codigos?

-Te explico yo estoy haciendo un Lector Rss para mi Blog, pero ese lector Rss contiene info de un Diario de mi Pais.

Espero tu ayuda, Gracias eh… Buen sitio.

Yodaknokkers
23/11/2007
10:12 pm

Se supone que se guarda en un archivo proxy.php en el servidor dónde alojas el flash. En el flash llamas al archivo php en lugar de llamar a la url que contiene el rss…

…digo “se supone”, porque yo lo hice y no me funciona. Al leer directamente el proxy.php el navegador me dice:

- Error de lectura XML: contenido incorrecto tras un elemento XML del documento … -

si alguien me puede explicar que ondas, porque lo demás esta bien, eso creo.

Yodaknokkers
23/11/2007
10:21 pm

Este es el error que me aparece :

Número de línea 2, columna 1:Warning: readfile() [function.readfile]: URL file-access is disabled in the server configuration in ……./proxy.php on line 4

Raul
11/12/2007
2:10 pm

Master… necesito ayuda con una tontera…

Cómo hago para que en el WORDPRESS aparezca esta caja de Enviar Comentario en el Home Page?

No logro dar con la solución…

Tendré que editar el código php como admin???

Saludos

Espero me puedas ayudar.

Zavala
18/09/2008
4:29 pm

Hola, pues la verdad ya estoy harto que en mi trabajo bloquean todos los webproxy y no podemos navegar a gusto, y yo quisiera en verdad saber como se hace una webproxy con php, por que es desagradable que webproxy que encontramos para navegar, webproxy que nos bloquean…en verdad es urgente la ayuda….

08/10/2008
3:15 pm

Hola unijimpe!
Esta muy interesante el blog del RSS y este de proxi pero no lo puedo hacer funcionar, hice todo tal cual y no funca.
¿que puede estar pasando?

gracias!

Mario
16/10/2008
11:30 am

En local funciona todo perfectamente pero en remoto nada de nada, ¿alguna solución?

Gracias por anticipado

Banner
18/02/2009
1:20 pm

Hola que tal…
yo tambien tenia el mismo problema al momento de subir el proxy a mi servidor de dominio, me puse a investigar y lo solucione con la funcion curl; aqui les dejo el codigo:

con este codigo debe de funcionarte tanto local como en cualquier otro servidor, lo unico que debes de tener habilitado es la extencion del curl, la cual es: extension=php_curl.dll …. cualquier duda respecto al uso de dicha funcion entra a la documentacion que da php http://www.php.net/curl venga animo!!

Banner
18/02/2009
1:23 pm

$vNombre_archivo=”feed.xml”;
$vRss_externo=”http://direccion_web”;
$ch = curl_init ($vRss_externo);
$fp = fopen $vNombre_archivo, “w”);
curl_setopt($ch,CURLOPT_FILE,$fp);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
header(”Content-type: text/xml”);
readfile($vNombre_archivo);

Heriberto
16/03/2009
10:48 am

hola quisiera saber si esto es aplicable a los archivos HTML, o sea, a todo tipo de sitios. mi idea es crear un web proxy y no tengo mucha informacion sobre eso. si alguien me puede ayudar se lo agradezco, aki esta mi correo heriberto.vj@gmail.com
gracias

26/03/2009
1:42 am

Podrias explicar mejor el lector de noticias en as3 de modo que utilice el proxy en php.

Muchas gracias y que dios te bendiga.

Nestor Fabio
29/03/2009
2:20 am

Hola a todos,

ya subi el proxy y el archivo swf a mi sitio web, pero me sale el siguiente error:

El marcado del documento que sigue al elemento raíz debe estar bien formado.

Podrian ayudarme.

Gracias

eminem
16/04/2009
1:34 pm

hola amigo mi problema es el siguente me baje el php proxy y lo aloje en mi server y entro remoto desde mi escuela me funcio bien pero a la hora de entrar e sitios q contien javascript no puedo accedre ej: a hotmail me dice q mi debo tener habilitado la opcion de java scrip en mi navegador y la tengo habilitado como q el codigo del php proxy no soporta java o hay q agragarle algo podrias ayudarme amigo te lo agradecere espero tu respuesta

eminem
16/04/2009
1:35 pm

espero por la ayuda de ustedes gracias

Enviar Comentario

(*)

(*)