J'ai de la difficulté à comprendre les spécifications et les directives sur la manière d'échapper et d'encoder correctement une URL pour la soumission dans un sitemap.Plan du site Encoder les malheurs
Dans les sitemap.org (entité qui s'échappent) des exemples, ils ont un exemple URL:
http://www.example.com/ümlat.php&q=name
qui, lorsqu'il termine encodée UTF-8 comme (selon eux):
http://www.example.com/%C3%BCmlat.php&q=name
Cependant, quand j'essaie ceci (rawurlencode) sur PHP je me retrouve avec:
http%3A%2F%2Fwww.example.com%2F%C3%BCmlat.php%26q%3Dname
J'ai un peu battu cela en utilisant cette fonction trouvée sur PHP.net
$entities = array('%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40',
'%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%23', '%5B', '%5D');
$replacements = array('!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "+",
"$", ",", "/", "?", "#", "[", "]");
$string = str_replace($entities, $replacements, rawurlencode($string));
mais selon quelqu'un que je parlais (Kohana BDFM), cette interprétation est erronée. Honnêtement, je suis si confus que je ne sais même pas ce qui est juste.
Quelle est la bonne façon d'encoder une URL à utiliser dans le sitemap?
pertinentes RFC 3986
Parfait, merci pour l'explication détaillée. –