PHP FILTER_SANITIZE_URL瑞典域名

时间:2010-03-06 19:09:11

标签: php sanitize filter-var filter-input

我正在试验filter_inputfilter_var,我目前正在尝试使用FILTER_SANITIZE_URL清理网址。

测试程序从GET变量中获取输入,该变量由URL组成(例如foo.com/bar.php?a=http://www.domain.se)。只要我不使用瑞典域名,它就可以正常工作。例如:(foo.com/bar.php?a=http://www.äta.se)被清理到a = http://www.ta.se,其中显然不相同。

1 个答案:

答案 0 :(得分:2)

具有特殊字符的域在技术上不会使用非ASCII字符传输(如您的情况中的ä),它们是punycode编码的。调用程序应该相应地编码它的URL。

请参阅:
http://en.wikipedia.org/wiki/Internationalized_domain_name
http://en.wikipedia.org/wiki/Punycode

例:
http://www.äta.sehttp://www.xn--ta-uia.se