Suf
Suf

Reputation: 51

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);

Upvotes: 5

Views: 16657

Answers (3)

alex
alex

Reputation: 490413

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);

Upvotes: 14

jeroen
jeroen

Reputation: 91742

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);

Upvotes: 4

ave4496
ave4496

Reputation: 3018

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

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

Upvotes: 7

Related Questions