(文件名特殊字符过滤)文件夹或文件名字中不能使用的特殊字符共有9个,过滤文件名中的特殊字符,并处理过滤后长度为0的情况

zblog10个月前zblog问题解答38
# 过滤文件名中的特殊字符,并处理过滤后长度为0的情况
function guiyi_txt_sanitize_file_name($fileName)
{
    // 定义不允许的特殊字符
    $invalidChars = array('\\', '/', ':', '*', '?', '"', '<', '>', '|');

    // 使用 str_replace 过滤掉不允许的字符
    $sanitizedFileName = str_replace($invalidChars, '', $fileName);

    // 如果过滤后的文件名为空,则返回 "未命名"
    if (empty(trim($sanitizedFileName))) {
        return '未命名';
    }
    return $sanitizedFileName;
}

文件夹或文件名字有一些特殊字符是不能使用的 一共有几个 特殊字符 不能用


文件夹或文件名字中不能使用的特殊字符共有9个

具体为:

\(反斜杠)

/(正斜杠)

:(冒号)

*(星号)

?(问号)

"(双引号)

<(小于号)

>(大于号)

|(竖线)



(文件名特殊字符过滤)文件夹或文件名字中不能使用的特殊字符共有9个,过滤文件名中的特殊字符,并处理过滤后长度为0的情况


参考  https://zblog.gongshi5.com/post/109.html  



python 实现

def guiyi_txt_sanitize_file_name(file_name):
    # 定义不允许的特殊字符集合(使用集合提升查找效率)
    invalid_chars = {'\\', '/', ':', '*', '?', '"', '<', '>', '|'}

    # 使用生成器表达式过滤字符(更高效的方式)
    sanitized_file_name = ''.join([c for c in file_name if c not in invalid_chars])

    # 清理空白字符并处理空字符串情况
    sanitized_file_name = sanitized_file_name.strip()
    return '未命名' if not sanitized_file_name else sanitized_file_name


print(guiyi_txt_sanitize_file_name("test\\file :name.txt"))  # 输出: testfilename.txt
print(guiyi_txt_sanitize_file_name("  *invalid?:/ "))  # 输出: 未命名
print(guiyi_txt_sanitize_file_name("valid file.txt"))  # 输出: valid file.txt
print(guiyi_txt_sanitize_file_name("   "))  # 输出: 未命名


相关文章

Nginx没有防火墙 Nginx设置加上 垃圾蜘蛛过滤

 if ($http_user_agent ~* "censys|bytedance|GPTBot|openai|Amazonbot|dotbot|c...

宝塔升级到最新版 python升级 重新执行更新命令,重新安装面板使用的python环境,此操作不会对您的网站、数据库等造成影响,仅仅是针对面板使用的环境修复。

1、将当前Python环境做个备份的操作mv /www/server/panel/pyenv/ /www/backup/pyenv_backup2、重新执行更新命令,重新安装面板使用的python环境...

宝塔mysql重启 service mysql restart

宝塔mysql重启 service mysql restart

service mysql restart...

【zblog各种查】$zbp->GetUploadByID 根据类名表名ID 各种查

查询 表(映射类)    $where = array();     $where[] ...

linux时间错误 centos时间错误

timedatectl set-timezone Asia/Shanghai echo "Asia/Shanghai" | ...