【问题标题】:regex for utf-8 filename validation用于 utf-8 文件名验证的正则表达式
【发布时间】:2011-05-22 14:16:53
【问题描述】:

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

【问题讨论】:

    标签: php regex filenames


    【解决方案1】:
    【解决方案2】:

    我一直认为非常优雅的另一种选择是 urlencode() 输入文件名。

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

    【讨论】:

      【解决方案3】:

      尝试排除无效的? ^[^/etc]+$ 或类似的(将 etc 替换为您不喜欢的其他字符)。

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          最近更新 更多