PHP: Agregar target="_blank" a enlaces HTML (salientes)
Consejo de Stefan Trost | 10/10/2026 a las 19:17
En este tutorial, le muestro una solución PHP para agregar el atributo target="_blank" automáticamente a todos enlaces o solo a todos los enlaces salientes.
Este código se puede utilizar, por ejemplo, para editar automáticamente un texto que un usuario ha introducido en un formulario de comentarios y para garantizar que todos los enlaces (salientes) se abran en una nueva ventana o pestaña y que su propia página permanezca abierta en el navegador incluso cuando un usuario haga clic en uno de estos enlaces.
Agregar el atributo target="_blank" a todos los enlaces
Hacemos uso de la función PHP preg_replace(), que alimentamos con la siguiente expresión regular:
$l = '<a href="https://www.sttmedia.com">';
$l = preg_replace('/(<a href="[^"]+")>/is', '\\1 target="_blank">', $l);
echo $l; // <a href="https://www.sttmedia.com" target="_blank">Entonces, buscamos una construcción de enlace que comienza con <a href=" y termina con "> y reemplazamos esta construcción con la cadena coincidente que incluye target="_blank".
Entre las dos comillas dobles después de "href=" puede aparecer un texto arbitrario, en este caso nuestro enlace. El texto que se encuentra entre corchetes, es decir, todo, desde '<a href...' hasta las comillas de cierre ", pero sin el cierre >, se recuperan nuevamente con \\1 en el reemplazo y se insertan junto con ' target="_blank">' en lugar del hit.
Agregar el atributo target="_blank" solo a los enlaces salientes
Suponiendo que todos los enlaces salientes comienzan con "http" o "https" mientras que los enlaces internos no contienen el nombre de dominio completo y se ven algo así como "/pagina-interna.html", "/pagina-interna" o "/interna/pagina.php", podemos expandir nuestro código de la siguiente manera:
$l = preg_replace('/(<a href="http:[^"]+")>/is', '\\1 target="_blank">', $l);
$l = preg_replace('/(<a href="https:[^"]+")>/is', '\\1 target="_blank">', $l);
Con esto, el atributo sólo se añadirá a los enlaces que remitan a otro sitio web distinto al propio, el resto de enlaces internos permanecerán sin alterar. Mientras los visitantes naveguen dentro del propio dominio, siempre se utiliza la ventana actual del navegador. Tan pronto como van a abandonar el propio dominio, se abre una nueva ventana del navegador. Por supuesto, esto sólo funciona de esta manera si los enlaces internos se especifican en la forma mencionada sin "http" o "https".
Sobre el Autor
Puede encontrar software de Stefan Trost en la pagina es.sttmedia.com. ¿Necesita un software individual según sus propios requisitos? Escribenos: es.sttmedia.com/contacto
Ver Perfil
Temas Relacionados
MySQL: Saltos de Línea en MySQL
Consejo | 0 Comentarios
Script Batch: Apagar Computadora Windows
Tutorial | 2 Comentarios
CSS: Cómo incluir CSS en HTML
Tutorial | 0 Comentarios
jQuery: Leer y Cambiar los Valores de los Atributos Data
Tutorial | 0 Comentarios
Poner Windows via Script en Hibernación o Modo de Suspensión
Tutorial | 1 Comentario
VirtualBox: Cambiar la Fecha y la Hora
Tutorial | 10 Comentarios
HTML: Preasignar un Formulario HTML con Datos
Tutorial | 0 Comentarios
Aviso Importante
Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.
Participar
Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.