Developers developers developers

Adoradores de la NES, seguidores del pingüino, Gafa-Pastas afiliados al iPod, histéricos del emule...
Avatar de Usuario
Musterol
Ulema
Mensajes: 4278
Registrado: 07 Sep 2009 16:02

Developers developers developers

Mensaje por Musterol »

Buenas, estoy haciendo unas tonterias que se me han ocurrido en php y quería saber vuestra opinión sobre una parte.
Estoy obteniendo con php el fuente de cualquier página, y luego quiero sacar de ese fuente todos los enlaces, por ejemplo. El fuente ya lo tengo, pero lo que es la búsqueda es lo que me lleva loco, porque lo estoy haciendo con strpos, substr y demás, y me parece que es muy bestia porque cada una de esas funciones recorren el string del fuente.

Avatar de Usuario
rianxeira
Ulema
Mensajes: 18446
Registrado: 24 Nov 2003 04:10
Ubicación: Medio planeta
Contactar:

Re: Developers developers developers

Mensaje por rianxeira »

Pues no se me ocurre muy bien que otra cosa puedes hacer, al menos asi de primeras no se me ocurre otra funcion ni otra forma que no sea recorrerse a palo todo el archivo.

Supongo que lo que haras es, con el fuente en la mano, coges cada linea (con un fgets o similar, el string resultante lo pasas por un substr replace y lo metes en el archivo de salida.

Vamos, que no se me ocurre otra forma.

Avatar de Usuario
Gandalfini
Mulá
Mensajes: 1009
Registrado: 24 Dic 2008 18:12
Ubicación: Un autocine.

Re: Developers developers developers

Mensaje por Gandalfini »

No tengo ni puñetera idea de php pero si lo que te preocupa es la complejidad, en lugar de usar una función que recorra el archivo ella solita ¿por qué no te programas tú la comprobación en un bucle que recorra una única vez el archivo? Vamos, supongo que lo que harán esas funciones serán identificar una etiqueta que indica que viene lo que estás buscando. No parece muy difícil programar eso. Claro, que no sé si en php se puede hacer, ya digo que ni idea.

Tampoco sé qué repercusión tiene a nivel de programación web el que una complejidad aumente de uno a tres mientras siga siendo lineal. No creo que un archivo fuente sea tan tocho como para que eso pueda preocupar, pero oye, no sé.

Avatar de Usuario
rianxeira
Ulema
Mensajes: 18446
Registrado: 24 Nov 2003 04:10
Ubicación: Medio planeta
Contactar:

Re: Developers developers developers

Mensaje por rianxeira »

Yo me dejaría de líos y usaría esta función, o si quieres hacerlo complicado de narices ahí tienes enlaces para aplicarla con exprresiones regulares.

Si como dice el mago blanco te preocupa la complejidad pues no se cual será internamente, pero apuesto por una lineal dada la descripción de la función, se recorre el string internamente tantas veces como sustituciones halla o eso entiendo.

Por cierto, ¿alguien sabe que pasó con la documentación en español de php? De repente desapareció un día, teniendo la inglesa no la necesito, pero me llama la atención que se mantenga la turca o la búlgara y no la española.

Avatar de Usuario
Musterol
Ulema
Mensajes: 4278
Registrado: 07 Sep 2009 16:02

Re: Developers developers developers

Mensaje por Musterol »

No lo he terminado, pero según mi lógica las funciones substr y strpos usadas como lo estoy haciendo suman O(n). Haber si cuando lo termine lo pongo por aquí por si a alguien le hace falta.

Lo mismo digo rian, yo hace una año que no estaba con php así que no se que decirte del manual.

Avatar de Usuario
Musterol
Ulema
Mensajes: 4278
Registrado: 07 Sep 2009 16:02

Re: Developers developers developers

Mensaje por Musterol »

¿Alguien sabe lo que significa en C el warning "declaración implicita de la función..."?

Avatar de Usuario
rianxeira
Ulema
Mensajes: 18446
Registrado: 24 Nov 2003 04:10
Ubicación: Medio planeta
Contactar:

Re: Developers developers developers

Mensaje por rianxeira »

Puede ser que no hayas declarado la función antes de usarla.

Avatar de Usuario
Musterol
Ulema
Mensajes: 4278
Registrado: 07 Sep 2009 16:02

Re: Developers developers developers

Mensaje por Musterol »

Es la función char * get_current_dir_name(void) que pertenece a las bibliotecas de C.

get_current_dir_name, cuyo prototipo sólo existe si está definida la
macro __USE_GNU


La he definido arriba del todo #define __USER_GNU y dice lo mismo. ¿Me suicido?

Avatar de Usuario
Jordison
Ulema
Mensajes: 15291
Registrado: 20 Dic 2003 11:43
Ubicación: En situación de desaceleración económica desfavorable.

Re: Developers developers developers

Mensaje por Jordison »

http://ubuntuforums.org/showthread.php?t=544185

Ahí sugieren que uses getcwd en vez de esa función, mira a ver.

Avatar de Usuario
Musterol
Ulema
Mensajes: 4278
Registrado: 07 Sep 2009 16:02

Re: Developers developers developers

Mensaje por Musterol »

Gracias Jordi, con esa no me da ningún warning.

Responder