php shell_exec复制文件,文件名中包含空格

时间:2012-11-02 11:40:54

标签: php file copy space shell-exec

我正在使用shell_exec()函数来复制php中的文件(在Windows IIS上)。我正在使用的命令是:

shell_exec("copy ..\\images\\$image_url temp\\$filename\\media\\image1.png");

这一点正常,直到图像名称($ image_url)名称中没有空格。但如果图像中有空格,那就失败了。

任何想法如何逃避$ image_url。任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:2)

试试这个:

shell_exec("copy \"..\\images\\$image_url\" \"temp\\$filename\\media\\image1.png\"");

基本上,就像在命令提示符上一样。如果你在参数中有空格,你必须在它们周围加上引号。围绕参数 - 不在空间周围。 ;-)如何知道复制命令,一个参数结束而另一个参数开始。

同时确保$image_url$filename是安全的。如果用户对其内容有影响,他们可能会对您的系统执行任何操作。小心!

答案 1 :(得分:0)

用“\”标记“”。

shell_exec("copy ..\\images\\".str_replace(" ", "\ ", $image_url)." temp\\".str_replace(" ", "\ ", $filename)."\\media\\image1.png");