Foros del Web » Programando para Internet » PHP »

PHP OO Aporte: Enlaces automáticos en un texto

Estas en el tema de Aporte: Enlaces automáticos en un texto en el foro de PHP en Foros del Web. Hola. Quería compatir con vosotros una clase que he tenido que hacer para insertar automáticamente enlaces en un texto. Actualmente funciona correctamente pero hay cosas ...
  #1 (permalink)  
Antiguo 01/04/2013, 07:30
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Aporte: Enlaces automáticos en un texto

Hola.
Quería compatir con vosotros una clase que he tenido que hacer para insertar automáticamente enlaces en un texto.
Actualmente funciona correctamente pero hay cosas que se pueden mejorar (la expresión regular es un poco chapucera), y otras cosas que faltan (la documentación y controlar alguos errores).
Está en GitHub así que podeís ayudar a mejorarla o arreglar errores si quereís:
Enlaces automáticos

En el archivo prueba.php viene un ejemplo de uso pero el funcionamiento básico es que se instancie la clase con un array que contiene arrays con los indices 'url', 'texto' y 'target':
Código PHP:
Ver original
  1. $enlaces = array(
  2. array( 'url' => 'http://google.com', 'texto' => 'un texto', 'target' => '_blank' ),
  3. array( 'url' => 'http://google.com', 'texto' => 'simple', 'target' => '_blank' ),
  4. array( 'url' => 'http://google.com', 'texto' => 'texto', 'target' => '_blank' ),
  5. array( 'url' => 'http://googlecom', 'texto' => 'urlnovalida', 'target' => '_blank' )
  6. );
  7. $enlazado = new EnlacesAutomaticos($enlaces);

Después se le pasa el texto en el que tiene que añadir los enlaces (aunque en el ejemplo es un texto plano, puede contener etiquetas html):
Código PHP:
Ver original
  1. $texto = "Este es un texto simple;";
  2. $enlazado->addLinks($texto);

Si mostrais el texto quedaría algo así:
Código HTML:
Ver original
  1. Este es <a target="_blank" href="http://google.com">un texto</a> <a target="_blank" href="http://google.com">simple</a>;

P.D.: Los enlaces se insertan en el orden de llegada y un enlace no puede pisar otro enlace, por eso en el ejemplo la palabra "texto" del tercer elemento no se enlaza porque ya está dentro de un enlace (el primer elemento es "un texto").
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España

Última edición por Trublux; 01/04/2013 a las 07:31 Razón: Se me olvidó poner la URL de donde se encuentra el aporte

Etiquetas: automaticamente, enlaces
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:19.