Existen ocasiones de en donde en una base de datos nos encontramos con que tenemos muchísimos artículos con links a otros sitios, y por algún motivo no colocamos el target=”_blank” a ninguno y muchas de sus visitas se pierden por culpa de eso.
Tambien vi algunos casos donde el string contiene muchisimos tags html <a> en donde ninguno contiene el atributo del target y eso es un gran problema al momento de querer hacer un trabajo bien organizado.
¿Cómo hago para colocar a todos mis artículos de una vez el target blank?
Pues aquí tengo una pequeña solución donde no hace falta editar nada y pasando esta función a todo lo que se encuentre con algún href va a agregar el target blank. Estaremos utilizando la funcion preg_replace que nos trae el mismo php y un poco de regex para que nos funcione correctamente.
function blank($string){ $str = preg_replace("/<a(.*?)>/", "<a$1 target=\"_blank\">", $string); return $str; }
Aqui dejo un ejemplo de como hacer funcionar para que todo el string que tengamos pueda agregar un target blank en caso de contener un elemento <a>
$texto = 'Hola mundo aqui dejo un ejemplo <a href="#">Link</a>'; echo blank($texto);
No recomiendo realizar un update en la base de datos con esta función ya que si por el contrario no queremos realizar o revertir tendríamos mas problemas que soluciones.
Espero que les haya servido.