2010-07-09 111 views
3

我有一個腳本,它會向用戶顯示一些壓縮選項(gzip,zip和bzip)。由於這是爲了在Linux上運行,並且Zlib庫不可用,我必須使用Unix命令來壓縮任何文件。當然,如果腳本在Windows上運行,它可能不會有任何漂亮的命令行壓縮工具,因此應用程序不應該向用戶顯示任何選擇。如何檢查命令是否可以執行?

所以,我想知道的是如何檢查命令行工具是否存在。我可以檢查是否存在可執行文件,但它根本不可靠(例如,在我的桌面上,我使用Gentoo Linux,並且zip命令位於/usr/bin上;另一方面,在我的服務器上它位於/bin上)。

+2

相似的問題:[如何檢查一個shell命令是否存在於PHP](http://stackoverflow.com/questions/12424787/how-to-check-if-a-shell-command-exists-from-php ) – 2012-12-06 18:34:44

回答

3

使用which命令。例如,使用which zip可以找出zip的生命位置以及是否存在。它標配在Linux/Mac上,並且還可以使用for Windows

+0

這裏http://stackoverflow.com/a/677212/1041470建議避免'哪個',因爲這個命令實現對於每個操作系統是不同的。 – VladSavitsky 2016-02-26 11:37:59

0

你可以編譯windows的zlib並連接你的程序......否則,你將不得不忍受硬編碼一些程序名稱到你的應用程序,並手動解析用戶的PATH變量,以找到它們的安裝位置。

或者,如果你想使用一個庫,你可以使用此功能從巧舌如簧: http://www.gtk.org/api/2.6/glib/glib-Miscellaneous-Utility-Functions.html#g-find-program-in-path

但是,如果你使用你的應用程序油腔滑調,在這一點上,它可能更容易只是建立的zlib的視窗。

0

Zlib可以安裝在所有上述操作系統上。

如果你看一下說明書...

www.php.net/manual/en/zlib.installation.php

它說:「內置在Windows上支持zlib是可用PHP 4.3.0「。

默認情況下Zlib未啓用,您必須在php.ini中手動啓用它。爲了檢查是否zlib的或任何其他模塊使能看到這個教程:

www.wlscripting.com/tutorial/47