2011-05-17 32 views
5

我正在制作SWF上传程序并完成了我的HTML表单。如何更换上传文件的文件名中的空格

它工作得很好,直到我上传名称中包含空格的SWF文件。

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

我已经试过......

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

......还有......

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

您不需要在问题的标题中加入'[PHP]'。 – drudge 2011-05-17 23:10:25

回答

7

功能是正确的,但你必须把它分配给一个变量。

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

'preg_replace()'不会像*那样工作。 – alex 2011-05-17 23:18:17

+0

我知道。但我只是复制你发布的内容。我以为你会知道如何处理它:) – user489872 2011-05-17 23:19:13

+0

我会,但不知道关于OP:D – alex 2011-05-17 23:19:44

14

我如何可以替换下划线的空白?

\s字符类将匹配空白字符。我添加了+量词将多个空格合并为一个_。如果你不想要,请删除+

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

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

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

你可以减少到'/ [^ - \ w] + /'。 [键盘](http://codepad.org/R5IJ0GVC)。 – alex 2011-05-17 23:23:23

+0

@alex true,但我认为这说明我的意思更好。 – jeroen 2011-05-17 23:25:03

+0

你说得对,如果OP的正则表达式经验有限,那么明确地看到这些字符可能会帮助他们对它进行修改。 – alex 2011-05-17 23:26:21

相关问题