Comunidad de diseño web y desarrollo en internet online

[PHP] Enlazar palabras (onda Wikipedia)

Citar            
MensajeEscrito el 24 Abr 2008 10:00 pm
Hace tiempo vengo pensando de como hacer un par de cosas en PHP, pero ahora se me vino a la cabeza esta: quiero hacer que por ejemplo tengo en una base de datos con nombres de personajes con sus biografias y demas, y que a escribir un articulo se fije en la base de datos si hay algun nombre de personaje nombrado en el articulo, y que de haberlo lo enlace a la ficha del personaje (o sea que haga el hipervinculo hacia la pagina). Similar a Wikipedia, que no estoy seguro si lo hacen manualmente o automaticamente, pero en caso de ser manualmente se que hay otras paginas que lo tienen automatizado.
Se me ocurrieron un par de ideas como usar preg_replace para que en el momento que se cargue la pagina haga una busqueda en el texto del articulo y comparar si hay algun nombre de algun personaje, y en caso de haberlo que lo reemplace agregandole un hipervinculo. Un ejemplo sencillo:

Código :

<?
$articulo='La pelea de Goku contra Majin Vegeta fue...';
$reemplazo[0]= preg_replace("/Goku/","<a href='#Goku'>Goku</a>",$articulo);
$reemplazo[1]= preg_replace("/Vegeta/","<a href='#Vegeta'>Vegeta</a>",$reemplazo[0]);
echo $reemplazo[1];  
?> 


Por supuesto que en vez de eso tendria que haber un while y un SELECT para cargar los nombres de los personajes automaticamente, aunque no estoy muy seguro de como hacerlo pero tengo una noción.

Otra cosa de la que no estoy seguro si es conveniente hacerlo de esta forma, ya que la pagina podria demorar mas en cargarlo al tener que realizar constantemente la busqueda. Lo que se me ocurre es hacerlo a la hora de "insertar" el articulo. Peero, las desventajas de esto serian que si por ejemplo agrego un personaje nuevo despues de agregar el articulo, este no lo vincularia (no se si me explico), asi que tendria que utilizar la opcion uno, a menos que a ustedes se les ocurra otra forma magica de hacerlo, les agradeceria si me avisan xD
Tambien agradeceria cualquier forma de optimizar el codigo, saludos espero alguna respuesta!

Por Barduck

13 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Abr 2008 05:40 pm
¿Manualmente? No jodas, usan un thesaurus (ask Google)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Abr 2008 11:29 pm

solisarg escribió:

¿Manualmente? No jodas, usan un thesaurus (ask Google)

Jorge


No vayas a escribir mas Jorgito a ver si te agarra artritis en los dedos...
Con esa respuesta mediocre no voy a llegar a ningun lado, igual gracias por el intento.

Por Barduck

13 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Abr 2008 01:40 am

Barduck escribió:

solisarg escribió:

¿Manualmente? No jodas, usan un thesaurus (ask Google)

Jorge


No vayas a escribir mas Jorgito a ver si te agarra artritis en los dedos...
Con esa respuesta mediocre no voy a llegar a ningun lado, igual gracias por el intento.

Pues serás tú que no llegas, yo llegué a saber lo que era un thesaurus e incluso ver la página thesaurus.com, donde te explican con más detalle. A ver si ahora hace falta que te hagan un manual ¬¬

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 26 Abr 2008 03:08 am

The Fricky! escribió:

Barduck escribió:

solisarg escribió:

¿Manualmente? No jodas, usan un thesaurus (ask Google)

Jorge


No vayas a escribir mas Jorgito a ver si te agarra artritis en los dedos...
Con esa respuesta mediocre no voy a llegar a ningun lado, igual gracias por el intento.

Pues serás tú que no llegas, yo llegué a saber lo que era un thesaurus e incluso ver la página thesaurus.com, donde te explican con más detalle. A ver si ahora hace falta que te hagan un manual ¬¬


Hola capo, mirá te explico, si yo entendiera inglés a la perfección no hubiera entrado acá a pedir ayuda, no te parece? no hay problema igual, cierren el post si quieren... postié porque pense que habia un poco de buena onda pero parece que no hay ganas de ayudar. De todas formas voy a seguir buscando alguna solución por las mias, gracias y saludos.

Por Barduck

13 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Abr 2008 12:56 pm
El sistema de la wikipedia es MANUAL (sólo tienes que editar/escribir un artículo para verlo).

Sin duda el reemplazo es mejor hacerlo cuando se escribe/modifica un artículo en la base de datos.
Te aconsejo (de cara a consumir menos recursos) que tengas dos copias de los artículos "original" y "preparada", al insertar un artículo grabas la original y añades los enlaces a la preparada, que es la que sirves en la web.

Después con un cronjob (tareas automatizadas) a diario o semanalmente o como veas, haces un chequeo por si se añadió alguna definició/biografía más ... coges uno por uno los artículos y los vas "preparando", de forma automática consumirías menos recursos que haciendo el reemplazo cada vez que sirves la página. (de aquí la importante de guardar el original, a menos que quieras calentarte la cabeza muchísimo al modificar el artículo o añadir nuevas definiciones).


También puedes probar con JS, y pasarle la carga del proceso al usuario, pero no te lo aconsejo.

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 26 Abr 2008 01:12 pm
Barduck, amigo, el pequeño saltamontes avanza de apoco y no muerde la mano que intenta ayudarle.
En tu misma pregunta se aprecia el nivel de desconocimiento de una red tan compleja como Wikipedia, de los algoritmos de búsquedas, de las redes distribuídas de conocimiento, de la tendencia a la infinitud de la acumulación del conocimiento ...
Luego encontrarás en mi respuestas un exceso de síntesis rayano en la vagancia. Me gusta probar a la gente: quienes tienen aptitudes y la base necesaria avanzarán hacia el conocimiento, el resto pedirá más y más y más explicaciones, o peor aún, irán a la polémica.
Descuida, un tropiezo no es caída amigo Barduck

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Abr 2008 11:03 pm

_CONEJO escribió:

El sistema de la wikipedia es MANUAL (sólo tienes que editar/escribir un artículo para verlo).

Sin duda el reemplazo es mejor hacerlo cuando se escribe/modifica un artículo en la base de datos.
Te aconsejo (de cara a consumir menos recursos) que tengas dos copias de los artículos "original" y "preparada", al insertar un artículo grabas la original y añades los enlaces a la preparada, que es la que sirves en la web.

Después con un cronjob (tareas automatizadas) a diario o semanalmente o como veas, haces un chequeo por si se añadió alguna definició/biografía más ... coges uno por uno los artículos y los vas "preparando", de forma automática consumirías menos recursos que haciendo el reemplazo cada vez que sirves la página. (de aquí la importante de guardar el original, a menos que quieras calentarte la cabeza muchísimo al modificar el artículo o añadir nuevas definiciones).


También puedes probar con JS, y pasarle la carga del proceso al usuario, pero no te lo aconsejo.


Gracias _CONEJO, la verdad muy buena idea la de guardar una copia y modificar la otra para hacerlo de forma automatica y guardarlo en la base de datos, no se me habia ocurrido.

solisarg escribió:

Barduck, amigo, el pequeño saltamontes avanza de apoco y no muerde la mano que intenta ayudarle.
En tu misma pregunta se aprecia el nivel de desconocimiento de una red tan compleja como Wikipedia, de los algoritmos de búsquedas, de las redes distribuídas de conocimiento, de la tendencia a la infinitud de la acumulación del conocimiento ...
Luego encontrarás en mi respuestas un exceso de síntesis rayano en la vagancia. Me gusta probar a la gente: quienes tienen aptitudes y la base necesaria avanzarán hacia el conocimiento, el resto pedirá más y más y más explicaciones, o peor aún, irán a la polémica.
Descuida, un tropiezo no es caída amigo Barduck

Jorge


Jorgito capo, espero que tu mano este bien. Te explico como viene el tema, si yo hago una pregunta, se supone que es porque -desconosco- del tema. Yo busque bastante antes de venir a postear aca, que para evitar estas cosas lo hago como ultimo recurso, obviamente que no encontre nada. Y tu "exceso de sintesis" sinceramente no me ayudo en un carajo, pero bue tal vez esa no era tu intencion.
Pido disculpas Sr. Jorgito "El Oraculo del conocimiento" si no pase tu experimento de laboratorio, pondre mas esfuerzo la proxima. Y _CONEJO coincide con que Wikipedia es manual, espero que no le apliques ningun tipo de castigo.
Saludos cordiales

Por Barduck

13 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.