Coincidencia de URL con expresiones regulares
Las expresiones regulares pueden resultar desalentadoras inicialmente, pero ofrecen poderosas capacidades de coincidencia de patrones para diversos tipos de datos. En el contexto de la extracción de URL, es necesario un patrón flexible para adaptarse a las variaciones en los formatos de URL.
Una expresión regular sólida que puede capturar URL con o sin protocolos principales (por ejemplo, "http://www" o " www") es:
((https?|ftp)://)? // Optional SCHEME ([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)? // Optional User and Pass ([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3}))) // Host or IP address (:[0-9]{2,5})? // Optional Port (/([a-z0-9 $_%-]\.?) )*/? // Path (\?[a-z &\$_.-][a-z0-9;:@&%= /$_.-]*)? // Optional GET Query (#[a-z_.-][a-z0-9 $%_.-]*)? // Optional Anchor
Para usar esta expresión en PHP, enciérrela entre comillas dobles y pásela a la función preg_match junto con la URL que desea evaluar. Por ejemplo:
$url = 'www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
echo 'Matched URL without protocol';
}
De manera similar, para URL con protocolos:
$url = 'http://www.example.com/etcetc';
if (preg_match("~^$regex$~i", $url)) {
echo 'Matched URL with protocol';
}
Este patrón debe cubrir una amplia gama de formatos de URL y, al mismo tiempo, proteger contra posibles entradas maliciosas que contengan caracteres como "/".
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3