hola, tengo laravel blade y aquí está la parte que tiene el problema
@php $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/"; @endphp <div class="message"> @php $text = nl2br(e($message)); @endphp @if(preg_match($reg_exUrl, $text, $url)){!! preg_replace($reg_exUrl, '<a href="$0" target="_blank">$0</a> ', $text) !!} @else {!!$text!!} @endif </div>esto funciona bien si el enlace está solo en el texto pero si se mezcló con algunas palabras y alguna línea de ruptura como este mensaje
hola querido comprador
el enlace funciona bien https://google.com/blabla
y algún texto aleatorio
se convirtió a este código html
hello dear buyer<br> <br> the link is working good<br> <a href="https://google.com/blabla<br" target="_blank">https://google.com/blabla<br< a=""> /> <br> and some random text<br> <br>Cómo arreglar esto
quiero reemplazar la url en la etiqueta de anclaje y mostrar la línea de ruptura si el usuario ingresa el mensaje contiene líneas
también para usar la función e () en Blade para evitar que se ejecute cualquier código html
alguien ayuda por favor
Hmm, su código solo funciona si solo hay un espacio antes de la etiqueta <br> . No creo que puedas hacer esto desde el
está vinculado al enlace. Tal vez puedas hacer esto por ahora (hasta que alguien más tenga una solución mejor) y asegurarte de que e() se llame después de str_replace:
$message = str_replace('<br>', ' <br>', $message); // Optional to trim double spaces $message = preg_replace('/\s\s+/', ' ', $message);