Je cherche à créer une chaîne d'URL comme celle utilisée par SO pour les liens vers les questions. Je ne cherche pas à réécrire l'url (mod_rewrite). Je cherche à générer le lien sur la page.Quelle est la meilleure façon de nettoyer une chaîne pour la placer dans une URL, comme le nom de la question sur SO?
Exemple: Le nom de question est:
Is it better to use ob_get_contents() or $text .= ‘test’;
L'URL finit par être:
http://stackoverflow.com/questions/292068/is-it-better-to-use-obgetcontents-or-text-test
La partie que je suis intéressé est:
is-it-better-to-use-obgetcontents-or-text-test
Donc, fondamentalement, je Je cherche à nettoyer tout ce qui n'est pas alphanumérique tout en gardant l'URL lisible. J'ai ce qui suit créé, mais je ne suis pas sûr que ce soit la meilleure façon ou si elle couvre toutes les possibilités:
$str = urlencode(
strtolower(
str_replace('--', '-',
preg_replace(array('/[^a-z0-9 ]/i', '/[^a-z0-9]/i'), array('', '-'),
trim($urlPart)))));
Donc, en gros:
- garniture
- remplacer tout non alphanumériques plus l'espace avec rien
- puis remplacer tout ce qui n'est pas alphanumérique avec un tiret
- remplacer - avec -.
strtolower()
urlencode()
- probablement pas nécessaire, mais juste pour faire bonne mesure.
** Dupliquer ** - –
Gumbo