我正在使用 shell_exec() 函数在 php 中复制文件(在 Windows IIS 上)。我使用的命令是:
shell_exec("copy ..\\images\\$image_url temp\\$filename\\media\\image1.png");
在图像名称($image_url)的名称中没有空格之前,这可以正常工作。但是,如果图像名称中有空格,这将失败。
知道如何转义 $image_url。任何帮助将不胜感激。
我正在使用 shell_exec() 函数在 php 中复制文件(在 Windows IIS 上)。我使用的命令是:
shell_exec("copy ..\\images\\$image_url temp\\$filename\\media\\image1.png");
在图像名称($image_url)的名称中没有空格之前,这可以正常工作。但是,如果图像名称中有空格,这将失败。
知道如何转义 $image_url。任何帮助将不胜感激。
试试这个:
shell_exec("copy \"..\\images\\$image_url\" \"temp\\$filename\\media\\image1.png\"");
基本上,就像在命令提示符上一样。如果参数中有空格,则必须在它们周围加上引号。围绕参数 - 而不是围绕空格。;-) 复制命令应该如何知道一个参数在哪里结束,另一个参数在哪里开始。
还要确保它$image_url
是$filename
安全的。如果用户对其内容有影响,他们可能会在您的系统上做任何事情。当心!
用“\”标记“”。
shell_exec("copy ..\\images\\".str_replace(" ", "\ ", $image_url)." temp\\".str_replace(" ", "\ ", $filename)."\\media\\image1.png");