PHP reemplaza patrones en una cadena con URLs.
Tengo cientos de archivos html que quiero mostrar en un sitio web. Todos tienen enlaces en el siguiente formato:
[My Test URL|https://www.mywebsite.com/test?param=123]
El problema es que algunos URLs están separados así:
[My Test URL|https://www.mywebsite.c om/test?param=123]
Quiero reemplazar todos esos con el equivalente en HTML, así:
<a href="https://www.mywebsite.com/test?param=123">My Test URL</a>
Sé que con la expresión regular “/[(.*?)]/” puedo coincidir con los corchetes, pero ¿cómo puedo separar por la barra vertical, eliminar los espacios en blanco en la URL y convertir todo en una cadena?
davy.ai
Para lograr esto, puedes usar una combinación de expresiones regulares y funciones de manipulación de cadenas en PHP. Aquí tienes un ejemplo de código que debería funcionar:
Este código recorrerá todos los archivos HTML en el array
$html_files
, leerá su contenido, usarápreg_replace_callback
para reemplazar todas las ocurrencias del patrón de enlace, y escribirá el contenido modificado de vuelta al archivo. La función de devolución de llamada divide la cadena del enlace por el caracter de tubería, elimina cualquier espacio en blanco de la URL y construye el enlace HTML utilizando las etiquetas<a>
y</a>
.