mvc htaccess ejemplo amigables amigable activar php string friendly-url slug

htaccess - URL amigable nombre de usuario en PHP?



url amigables php mvc (2)

En mi sitio PHP, actualmente los usuarios inician sesión con una dirección de correo electrónico y una contraseña. También me gustaría agregar un nombre de usuario, este nombre de usuario que configuran será único y no pueden cambiarlo. Me pregunto cómo puedo hacer que este nombre no tenga espacios y trabaje en una URL para poder usar su nombre de usuario para vincularme a sus perfiles y otras cosas. Si hay un espacio en el nombre de usuario, entonces debería agregar un guión bajo jason_davis. No estoy seguro de la mejor manera de hacer esto?


En otras palabras ... necesitas crear un slug de nombre de usuario. Doctrine (ORM para PHP) tiene una buena función para hacerlo. Doctrine_Inflector::urlize()

EDITAR : también debe mantener el nombre de usuario slug en la base de datos, como columna de clave única. Entonces, cada operación de búsqueda debe hacerse en función de esa columna, no el nombre de usuario original.


function Slug($string) { return strtolower(trim(preg_replace(''~[^0-9a-z]+~i'', ''-'', html_entity_decode(preg_replace(''~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i'', ''$1'', htmlentities($string, ENT_QUOTES, ''UTF-8'')), ENT_QUOTES, ''UTF-8'')), ''-'')); } $user = ''Alix Axel''; echo Slug($user); // alix-axel $user = ''Álix Ãxel''; echo Slug($user); // alix-axel $user = ''Álix----_Ãxel!?!?''; echo Slug($user); // alix-axel