我找到了一个包含所有主要命令行图像优化器的 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 Files
或 C:\Program Files (x86)
下的子目录。
identify
和 convert
是 ImageMagick 的一部分.您需要下载并安装它,然后更改 exec
调用以指向安装 EXE 的路径(例如,在 C:\Program Files
下)。由于安装路径可能包含空格,因此您需要将其引用,例如:
exec("\"C:\\Program Files (x86)\\ImageMagick-6.6.1-Q16\\identify\" -quiet -format \"%m\" $file_path", $return, $error);
您正在运行的其他应用程序 -- jpegtran
、pngcrush
、gifsicle
、pngquant
和 pngout
-- 是独立的应用程序。您可以用 Google 搜索它们以找到它们各自的下载页面。
关于windows - 如何使用 PHP 在 Windows 上运行这些 Unix 类型的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8782829/