<?php function cambiar_url($url) { $url = strtolower($url); $buscar = array(' ', '&', 'rn', 'n', '+'); $url = str_replace ($buscar, '-', $url); $buscar = array('á', 'é', 'í', 'ó', 'ú', 'ñ'); $remplzr = array('a', 'e', 'i', 'o', 'u', 'n'); $url = str_replace ($buscar, $remplzr, $url); $buscar = array('/[^a-z0-9-<>]/', '/[-]+/', '/<[^>]*>/'); $remplzr = array('', '-', ''); $url = preg_replace ($buscar, $remplzr, $url); return $url; } ?>
Así de simple es cambiar acentos por las mismas letras sin la tilde, y los espacios quedan con un guón. Entonces explicando todo paso a paso la función se compone de lo siguiente. Primero pasamos todo a minúscula:
$url = strtolower($url);
Luego creamos un arreglo que contendrá los caracteres o símbolos a buscar, lo llamamos por ejemplo "$buscar", y otro con los que serán reemplazados en la misma posición del arreglo anterior, podemos llamarlo "$remplzr". Después de esto hacemos lo mismo pero con un arreglo para los acentos (sin usar otras variables para no complicarnos), y el último es para otros caracteres especiales, tanto el de los espacios como caracteres especiales los reemplazamos por un guión ( - ), pero podemos cambiarlo por cualquier otra cosa que queramos, de modo que va así la función con respecto a los arreglos.
//Primer arreglo $buscar = array(' ', '&', 'rn', 'n', '+'); $url = str_replace ($buscar, '-', $url); //Segundo arreglo $buscar = array('á', 'é', 'í', 'ó', 'ú', 'ñ'); $remplzr = array('a', 'e', 'i', 'o', 'u', 'n'); $url = str_replace ($buscar, $remplzr, $url); //Tercer arreglo $buscar = array('/[^a-z0-9-<>]/', '/[-]+/', '/<[^>]*>/'); $remplzr = array('', '-', ''); $url = preg_replace ($buscar, $remplzr, $url); return $url;
Por último retornamos la variable y listo, ya solo queda llamar la función desde nuestro PHP.
<?php cambiar_url($mi_cadena) ?>
Recomiendo utilizar esto mas que todo para un arreglo donde tengamos muchos enlaces con acentos o cuando cargamos data de una base de datos como nombres y queremos utilizarlos en enlaces y propiedades, todo es cuestión de probar y comprar resultados.
Recibe notificaciones por correo