windows - 如何使用 PHP 在 Windows 上运行这些 Unix 类型的命令

标签 windows command-line

我找到了一个包含所有主要命令行图像优化器的 PHP 项目,这是我一段时间以来一直在寻找的东西。

目前我遇到的问题是我想在 Windows 系统上运行它。以下是从脚本运行的一些命令。

所以我的问题是,我将如何在我的 Windows 系统上运行这些外部程序,它们确实有 Windows 版本,这只是让这个 PHP 调用正确命令的问题。

/usr/bin/identify 这样的东西如何转化为在 Windows 系统上运行?

exec("/usr/bin/identify -quiet -format \"%m\" $file_path", $return, $error);

$cmd = "/usr/bin/jpegtran -copy none -progressive -optimize $src_file > $dest_file";

$cmd = "/usr/bin/convert $src_file $raw_file";

exec("/usr/bin/pngcrush -rem alla -brute -reduce $raw_file $dest_file");

$cmd = "/usr/bin/gifsicle -O2 $src_file > $dest_file";

$cmd = "/usr/bin/pngquant -ordered 256 $src_file";

 $cmd = "/usr/bin/pngout -c3 -d8 -y -force $quant_file $out_file";

最佳答案

这些并不是真正特定于 Unix 的应用程序。它们是各种图形编辑程序。它们中的大部分或全部可能在 Windows 上可用;您只需要安装它们(其他人已经将它们安装在您的脚本最初编写的 Unix 机器上的方式)。

这里唯一特定于 Unix 的东西是它查找程序的路径(/usr/bin 用于您示例中的所有内容)。在 Windows 上,应用程序通常安装到 C:\Program FilesC:\Program Files (x86) 下的子目录。

identifyconvertImageMagick 的一部分.您需要下载并安装它,然后更改 exec 调用以指向安装 EXE 的路径(例如,在 C:\Program Files 下)。由于安装路径可能包含空格,因此您需要将其引用,例如:

exec("\"C:\\Program Files (x86)\\ImageMagick-6.6.1-Q16\\identify\" -quiet -format \"%m\" $file_path", $return, $error);

您正在运行的其他应用程序 -- jpegtranpngcrushgifsiclepngquantpngout -- 是独立的应用程序。您可以用 Google 搜索它们以找到它们各自的下载页面。

关于windows - 如何使用 PHP 在 Windows 上运行这些 Unix 类型的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8782829/

相关文章:

c# - C#中如何从网站下载文件

linux - 删除 Maven Pom 中的重复依赖项

delphi - 有没有以version为入参的Delphi源码批量编译方案?

node.js - 尝试使用 React Native 创建项目时出错

linux - 如何验证两个 zip 包之间的等效性

windows - 交互式命令提示符字符转义%

Java 错误 : incorrect time in MSK

c# - 在 Windows 中,如何使用 C++ 或 C# 在属于另一个进程的窗口中获取突出显示的文本?

deployment - Mage.exe 部署问题

UNIX 'comm' 实用程序允许在 BSD 中不区分大小写,但在 Linux 中不允许(通过 -i 标志)。我如何在 Linux 中获取它?