2012-11-02 38 views
1

我使用了shell_exec()函数来复制PHP文件(在Windows IIS)复制文件。我使用的命令是:PHP用了shell_exec空间,文件名

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

直到图像名称($ IMAGE_URL)不具有名称空间这是工作的罚款。但是,如果图像有名字空间,这只是失败。

任何想法如何逃脱$ IMAGE_URL。任何帮助将不胜感激。

回答

2

试试这个:

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

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

还要确保$image_url$filename是安全的。如果用户对他们的内容有影响,他们可能会在你的系统上做任何事情。小心!

+0

Thanks bidifix ... – antnewbee

0

用“\”标记“”。

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