【问题标题】:PHP: Can't append onto valuePHP:无法附加到值
【发布时间】:2014-06-02 11:33:03
【问题描述】:

我正在尝试使用 winbinder 制作一个将 .iwd 转换为 .zip 的程序(只需将 .iwd 重命名为 .zip 即可),我需要知道如何获取包含该文件的变量并制作它用 .zip 覆盖扩展名

case 11:
            $filename = $GLOBALS["orig_filename"];
            $withoutExt = preg_replace("/\\.[^.\\s]{3,4}$/", "", $filename);
            $filename_with_zip = $filename."zip";
            echo shell_exec("rename ,"$filename" ,"$filename_with_zip"");
            echo $filename_with_zip;
        break;

【问题讨论】:

    标签: php copy rename shell-exec


    【解决方案1】:

    您可以像这样更改文件扩展名

    $iwd = "C:/path/to/myfile.iwd";
    $zip = str_replace('.iwd', '.zip', $iwd);
    rename($iwd, $zip);
    

    【讨论】:

      【解决方案2】:

      代码:

      对 Almis 的原始遮阳篷表示敬意,经过修改以适应您的使用并进行了解释。

      case 11:
           $iwd = $GLOBALS["orig_filename"];
           $zip = str_replace('.iwd', '.zip', $iwd);
           rename($iwd, $zip);
      break;
      


      解释:

      首先,不要将shell_exec() 用于已经内置的PHP 函数rename,这里使用php.net/rename

      其次,str_replace() 提供了将参数 1 替换为参数 2 www.php.net/manual/en/function.str-replace.php 的能力

      最后,不要使用全局变量,它们会使问题更难诊断。 https://stackoverflow.com/questions/1557787/are... 如果您仍然决定使用它们,我发现在需要单独函数中的值之前使用 global $value 会更好。

      【讨论】:

        猜你喜欢
        • 2018-09-10
        • 2022-10-24
        • 2016-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-16
        • 2018-07-16
        • 1970-01-01
        相关资源
        最近更新 更多