FAQ
Hola a todos,

Necesito ejecutar en línea de comando un lynx para volcar el contenido de
una página en local para tratarla.

Si ejecuto el programa desde el shell funciona sin problemas:

homedir$ lynx -dump http://www.loquesea/fichero_que_sea > data.txt

Pero si ejecuto esta misma llamada desde la funcion de php exec() pasa de
mi totalmente.

exec("lynx -dump http://www.loquesea/fichero_que_sea > data.txt");

Alguna idea??

Muchas gracias. Ah! estoy usando RedHat 6.2, Apache 1.3.12 y PHP4.0.2. La
versión de Lynx no recuerdo, pero da lo mismo!

JoséMi

Search Discussions

  • Pgodel at Dec 18, 2000 at 7:25 pm
    Es probable que tengas un & dentro del URL por lo que el
    shell lo toma como el indicador de enviar el comando al
    background. Para solucionarlo debes poner

    lynx -dump 'http://dominio.com/loquesea'

    Otro problema puede ser que lynx no este en el path del
    usuario con que corre apache/php, para solucionarlo pone
    todo el path completo de lynx
    /usr/bin/lynx

    Otra cosa recomendable es que no envies la salida de lynx a
    un archivo, directamente podes acceder a la respuesta en un
    array dentro de php, revisa el comando exec() en el manual
    de PHP.

    Saludos,
    Pablo Godel


    Mensaje citado por: José Miguel Latorre <jmlatorre@memory-
    set.es>:
    Hola a todos,

    Necesito ejecutar en línea de comando un lynx para volcar
    el contenido
    de
    una página en local para tratarla.

    Si ejecuto el programa desde el shell funciona sin
    problemas:
    homedir$ lynx -dump http://www.loquesea/fichero_que_sea > data.txt
    Pero si ejecuto esta misma llamada desde la funcion de
    php exec() pasa
    de
    mi totalmente.

    exec("lynx -dump http://www.loquesea/fichero_que_sea >
    data.txt");
    Alguna idea??

    Muchas gracias. Ah! estoy usando RedHat 6.2, Apache
    1.3.12 y PHP4.0.2.
    La
    versión de Lynx no recuerdo, pero da lo mismo!

    JoséMi
  • Tomas V.V.Cox at Dec 19, 2000 at 8:06 am

    José Miguel Latorre wrote:

    Hola a todos,

    Necesito ejecutar en línea de comando un lynx para volcar el contenido de
    una página en local para tratarla.

    Si ejecuto el programa desde el shell funciona sin problemas:

    homedir$ lynx -dump http://www.loquesea/fichero_que_sea > data.txt

    Pero si ejecuto esta misma llamada desde la funcion de php exec() pasa de
    mi totalmente.

    exec("lynx -dump http://www.loquesea/fichero_que_sea > data.txt");
    El problema venga probablemente del redirector de la salida estandar. De
    todas formas fopen() soporta http, con lo que te ahorras el lynx. Si aun
    asi estas empeñado en usar un prog externo te recomendaría wget.

    Saludos,

    Tomas V.V.Cox
  • José Miguel Latorre at Dec 19, 2000 at 9:09 am

    At 19:08 18/12/00 +0100, you wrote:
    Necesito ejecutar en línea de comando un lynx para volcar el contenido de
    una página en local para tratarla.

    Si ejecuto el programa desde el shell funciona sin problemas:

    homedir$ lynx -dump http://www.loquesea/fichero_que_sea > data.txt

    Pero si ejecuto esta misma llamada desde la funcion de php exec() pasa de
    mi totalmente.

    exec("lynx -dump http://www.loquesea/fichero_que_sea > data.txt");
    El problema venga probablemente del redirector de la salida estandar. De
    todas formas fopen() soporta http, con lo que te ahorras el lynx. Si aun
    asi estas empeñado en usar un prog externo te recomendaría wget.
    Sí, pero el problema que tengo con fopen() es que no soporta redirect, y la
    página a la que llamo es un script que me devuelve una página distinta de la
    original, y me da un error de lectura, ya que no puede leer el fichero que le
    solicito. Por eso estaba pensando en la solución (chapucera??) de usar el
    lynx y luego leer el fichero devuelto en local!

    Gracias de todas formas. Veré que se me ocurre.

    JoséMi
  • Pablo Godel at Dec 19, 2000 at 3:02 pm
    Proba con la clase snoopy - http://snoopy.sourceforge.com
    Es excelente

    Saludos,
    Pablo Godel

    José Miguel Latorre wrote:
    At 19:08 18/12/00 +0100, you wrote:
    Necesito ejecutar en línea de comando un lynx para volcar el contenido de
    una página en local para tratarla.

    Si ejecuto el programa desde el shell funciona sin problemas:

    homedir$ lynx -dump http://www.loquesea/fichero_que_sea > data.txt

    Pero si ejecuto esta misma llamada desde la funcion de php exec() pasa de
    mi totalmente.

    exec("lynx -dump http://www.loquesea/fichero_que_sea > data.txt");
    El problema venga probablemente del redirector de la salida estandar. De
    todas formas fopen() soporta http, con lo que te ahorras el lynx. Si aun
    asi estas empeñado en usar un prog externo te recomendaría wget.
    Sí, pero el problema que tengo con fopen() es que no soporta redirect, y la
    página a la que llamo es un script que me devuelve una página distinta de la
    original, y me da un error de lectura, ya que no puede leer el fichero que le
    solicito. Por eso estaba pensando en la solución (chapucera??) de usar el
    lynx y luego leer el fichero devuelto en local!

    Gracias de todas formas. Veré que se me ocurre.
  • Julio Garcia at Dec 19, 2000 at 3:47 pm
    Hello José,

    Tuesday, December 19, 2000, 8:08:43 AM, you wrote:
    homedir$ lynx -dump http://www.loquesea/fichero_que_sea > data.txt
    JML> Sí, pero el problema que tengo con fopen() es que no soporta redirect, y la
    JML> página a la que llamo es un script que me devuelve una página distinta de la
    JML> original, y me da un error de lectura, ya que no puede leer el fichero que le
    JML> solicito. Por eso estaba pensando en la solución (chapucera??) de usar el
    JML> lynx y luego leer el fichero devuelto en local!


    Lee las headers y actua en consecuencia... en ellas te vendra la
    URL a la cual te redirige el server.


    --
    Best regards,
    Julio mailto:julio@masbytes.es
  • Julio Garcia at Dec 19, 2000 at 9:16 am
    Hello José,

    Monday, December 18, 2000, 5:43:50 PM, you wrote:

    JML> Necesito ejecutar en línea de comando un lynx para volcar el contenido de
    JML> una página en local para tratarla.
    JML> homedir$ lynx -dump http://www.loquesea/fichero_que_sea > data.txt
    JML> Pero si ejecuto esta misma llamada desde la funcion de php exec() pasa de
    JML> mi totalmente.

    Mucho mejor hacer esto...

    $url="http://www.loquesea/fichero_que_sea";
    $fp=fopen($url,"r");
    $txt=fread($fp,100000);
    fclose($fp);

    en la variable $txt, tendras el contenido de esa URL

    Lo unico si el contenido puede superar los 100000 bytes, actua en
    consecuencia ampliando el valor del 'fread'




    --
    Best regards,
    Julio mailto:julio@masbytes.es

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedDec 18, '00 at 6:45p
activeDec 19, '00 at 3:47p
posts7
users4
websitephp.net

People

Translate

site design / logo © 2022 Grokbase