【问题标题】:php shell_exec copy file with space in filenamephp shell_exec 复制文件,文件名中有空格
【发布时间】:2012-11-02 11:40:54
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php file copy space shell-exec


    【解决方案1】:

    试试这个:

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

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

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

    【讨论】:

      【解决方案2】:

      用“\”标记“”。

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

      【讨论】:

        猜你喜欢
        • 2014-05-08
        • 1970-01-01
        • 2014-02-13
        • 2012-09-30
        • 2011-09-10
        • 1970-01-01
        • 2011-02-17
        • 2018-09-06
        • 1970-01-01
        相关资源
        最近更新 更多