我正在使用shell_exec()函数来复制php中的文件(在Windows IIS上)。我正在使用的命令是:
shell_exec("copy ..\\images\\$image_url temp\\$filename\\media\\image1.png");
这一点正常,直到图像名称($ image_url)名称中没有空格。但如果图像中有空格,那就失败了。
任何想法如何逃避$ image_url。任何帮助将受到高度赞赏。
答案 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");