【发布时间】:2011-05-22 14:16:53
【问题描述】:
我已经在谷歌上搜索了几个小时,但我找不到一个很好的 utf-8 文件名验证 PHP 正则表达式解决方案的解决方案。我已经尝试了很多,如果需要我可以在这里复制/粘贴。文件名可以包含德语或其他字符,但不能包含 / 等无效字符。您知道吗?
【问题讨论】:
我已经在谷歌上搜索了几个小时,但我找不到一个很好的 utf-8 文件名验证 PHP 正则表达式解决方案的解决方案。我已经尝试了很多,如果需要我可以在这里复制/粘贴。文件名可以包含德语或其他字符,但不能包含 / 等无效字符。您知道吗?
【问题讨论】:
我一直认为非常优雅的另一种选择是 urlencode() 输入文件名。
这消除了将字符列入黑名单的需要,因为它创建了适用于每个文件系统的文件名;使用urldecode() 显示真实文件名是微不足道的。
【讨论】:
尝试排除无效的? ^[^/etc]+$ 或类似的(将 etc 替换为您不喜欢的其他字符)。
不确定您是否真的需要该任务的正则表达式。
【讨论】:
我不确定您是否尝试验证文件是否为 UTF-8 或如何执行 UTF-8 正则表达式。如果你想做一个UTF-8正则表达式,你可以使用mbstring系列函数,首先将mb_regex_encoding设置为UTF-8,然后使用mb_ereg做正则表达式匹配。如果你想测试文件是否有UTF-8,你可以在文件内容上使用mb_detect_encoding,看看它是否匹配UTF-8。
【讨论】: