如何替换上传文件的文件名中的空格
Posted
技术标签:
【中文标题】如何替换上传文件的文件名中的空格【英文标题】: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]
。
【参考方案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 因为我懒得像你一样写解释:)以上是关于如何替换上传文件的文件名中的空格的主要内容,如果未能解决你的问题,请参考以下文章