Enlazar palabras (thesaurus)
Publicado por Sebastián (7 intervenciones) el 26/04/2008 01:36:31
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.
Tambien agradeceria cualquier forma de optimizar el codigo, saludos!
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.
Tambien agradeceria cualquier forma de optimizar el codigo, saludos!
Valora esta pregunta
0