Je prépare une fonction en PHP pour convertir automatiquement une chaîne à utiliser comme nom de fichier dans une URL (* .html). Bien que ASCII devrait être utilisé pour être du bon côté, pour les besoins de SEO je dois autoriser le nom de fichier dans n'importe quelle langue mais je ne veux pas qu'il inclue une ponctuation autre qu'un tiret (-) et un trait de soulignement (_), des caractères comme *% $ # @ " » ne devrait pas être autorisé.regex pour correspondre à n'importe quel caractère UTF à l'exclusion de la ponctuation
les espaces doivent être convertis en tirets.
Je pense que l'utilisation de Regex sera la meilleure façon, mais je ne suis pas sûr qu'il comment gérer chaînes UTF8
Mes fonctions ASCII ressemble à ceci:.
function convertToPath($string)
{
$string = strtolower(trim($string));
$string = preg_replace('/[^a-z0-9-]/', '-', $string);
$string = preg_replace('/-+/', "-", $string);
return $string;
}
Tha nks,
Roy.
Vous avez raison sur celui-ci - laisser des caractères non-ASCII dans une URL causera des problèmes car vous devez suivre l'encodage de l'URL du navigateur du client (ce qui n'est pas très cohérent). Mais s'il vous plaît noter, que iconv-transliteration nécessite les paramètres régionaux corrects à définir (encodage UTF-8) - en utilisant Windows ce –
est un show-stopper. –