【问题标题】:How can I replace white space in filename of uploaded file如何替换上传文件的文件名中的空格
【发布时间】:2011-08-27 15:30:19
【问题描述】:

我正在制作一个 SWF 上传器并完成我的 HTML 表单。

在我上传名称中包含空格的 SWF 文件之前,它完全可以正常工作。

如何将空格替换为下划线?

我试过了……

str_replace(" ","_", $file);

...和...

preg_replace(" ","_", $file);

【问题讨论】:

  • 您无需在问题标题中输入[PHP]

标签: php regex preg-replace str-replace


【解决方案1】:

如何将空格替换为下划线?

\s 字符类将匹配空白字符。我添加了+ 量词以将多个空格折叠到一个_。如果您不想这样,请删除 +

$file = preg_replace('/\s+/', '_', $file);

【讨论】:

    【解决方案2】:

    函数是正确的,但你必须将它分配给一个变量。

    $filename = str_replace/preg_replace(" ","_", $file);
    

    【讨论】:

    • 我知道。但我只是复制了你发布的内容。我以为你会知道如何处理它:)
    • 我愿意,但不确定 OP :D
    【解决方案3】:

    我通常从另一边接近它,只允许来自白名单的字符;我替换除了这些字符之外的所有内容:

    $file = preg_replace("/[^-_a-z0-9]+/i", "_", $file);
    

    【讨论】:

    • @alex 是的,但我认为这更能说明我的意思。
    • 你是对的,如果 OP 的正则表达式经验有限,那么明确地看到这些字符可能会帮助他们理解它。
    • @alex 因为我懒得像你一样写解释:)
    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多