Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I replace white space in filename of uploaded file

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);
like image 397
Suf Avatar asked May 17 '11 23:05

Suf


3 Answers

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);
like image 137
alex Avatar answered Oct 04 '22 10:10

alex


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

$filename = str_replace/preg_replace(" ","_", $file);
like image 33
ave4496 Avatar answered Oct 04 '22 08:10

ave4496


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);
like image 20
jeroen Avatar answered Oct 04 '22 10:10

jeroen