...

View Full Version : special chars in filename help



tripwater
11-03-2006, 10:23 PM
I have a temp folder that clients ftp images into. Now if they upload a file called 'White Lilly.jpg' linux adds a backslash to escape the space in the name. so it becomes 'White\ Lilly.jpg'

The problem I am having is once they upload the file, I read the directory for any files inside and rename them, and move them to another folder.

Like so



$directory = '../tempimages';

$directory_stream = opendir($directory);

while ($entry = readdir($directory_stream))
{
$oldpath = $directory."/".$entry;

$newpath = '../../gallery/'.$imageid.'.jpg';

$cmd = "mv ".$oldpath." ".$newpath;

$ret =0;

exec($cmd, $result, $ret);
}


But the problem is, any file that has a backslash in it will not move. So I echo the $entry var and it does not show the name witha backslash in it but if I go to a shell and look, it does. So the file is not found when calling the 'mv' command because the var $entry is not the same as what is on the server.

So how can I strip the special chars as well as the backslash in the folder before I read it? So that the file name would be WhiteLilly.jpg when I open the dir to read the files. Or is there a better solution?

The filename in the temp dir is not that important in the end result as it is getting renamed to the imageid when I move it to the gallery folder. I just need the $entry var to match what is actually on the server so the mv command will work.

thank you for any help with this



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum