1

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

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

在图像名称($image_url)的名称中没有空格之前,这可以正常工作。但是,如果图像名称中有空格,这将失败。

知道如何转义 $image_url。任何帮助将不胜感激。

4

2 回答 2

2

试试这个:

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

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

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

于 2012-11-02T11:43:32.457 回答
0

用“\”标记“”。

shell_exec("copy ..\\images\\".str_replace(" ", "\ ", $image_url)." temp\\".str_replace(" ", "\ ", $filename)."\\media\\image1.png");
于 2012-11-02T11:50:11.787 回答