How can I replace white space in filename of uploaded file

南笙酒味 提交于 2019-12-01 17:44:26

问题


I'm making a SWF uploader and have my HTML form done.

It works totally fine until I upload a SWF file with spaces in the name.

How can I replace whitespace with underscores?

I have tried...

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

...and...

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

回答1:


How can I replace whitespace with underscores?

The \s character class will match whitespace characters. I've added the + quantifier to collapse multiple whitespace to one _. If you don't want that, remove the +.

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



回答2:


the function is correct but you have to assign it to a variable.

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



回答3:


I usually approach it from the other side and only allow characters from a white-list; I replace everything except these characters:

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


来源:https://stackoverflow.com/questions/6038159/how-can-i-replace-white-space-in-filename-of-uploaded-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!