用于utf-8文件名验证的正则表达式

时间:2011-05-22 14:16:53

标签: php regex filenames

我一直在谷歌上搜索几个小时,但我找不到一个很好的解决方案,用于验证PHP正则表达式解决方案的utf-8文件名。我尝试了很多,如果需要,我可以在这里复制/粘贴。文件名可能包括德语或其他字符,但不包括/等无效字符。您有什么想法吗?

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我总是觉得非常优雅的另一个选择是urlencode()文件名。

它消除了将字符列入黑名单的需要,因为它创建了适用于每个文件系统的文件名;使用urldecode()显示真实文件名是微不足道的。

答案 2 :(得分:0)

尝试排除无效的? ^[^/etc]+$或其他一些(用你不喜欢的其他字符替换等)。

不确定您是否真的需要正则表达式来完成任务。

答案 3 :(得分:0)

我不确定您是否尝试验证文件是否为UTF-8或如何执行UTF-8正则表达式。如果你想使用UTF-8正则表达式,你可以使用mbstring系列函数,首先将mb_regex_encoding设置为UTF-8,然后使用mb_ereg进行正则表达式匹配。如果要测试文件是否具有UTF-8,可以对文件内容使用mb_detect_encoding,看它是否与UTF-8匹配。