2014-08-30 80 views
0

如何在linux/Mac系統上成功運行PHP的命令行應用程序。使用PHP運行命令行應用程序

我正在使用mac並試圖運行optipng。我從這裏

http://sourceforge.net/projects/optipng/files/OptiPNG/optipng-0.7.5/optipng-0.7.5.tar.gz/download?use_mirror=softlayer-sng&download= 

下載使用OptiPNG下載之後,我通過命令行安裝了由CD'ing的下載文件夾,並相應地安裝它:

cd path/to/optipng 
sudo ./configure 
sudo make install 

我現在可以運行它並壓縮像這樣的圖像:

optipng path/to/example/file.png 

一切工作正常,所以它已安裝並在我的系統上工作。

我想通過一個PHP頁面來運行它,所以我試試這個:

<?php 
echo "origional size =". filesize(path/to/example/file.png)."\n"; 

$compress = shell_exec('optipng path/to/example/file.png'); 

echo "<pre>$compress</pre>"; 

echo "new size =". filesize(path/to/example/file.png)."\n"; 

?> 

但不起任何作用。我在這裏錯過了什麼?如何成功使用shell_exec()或exec()?

+0

'var_dump($ compress);'在shell_exec之後。裏邊啥啊 ? – Jigar 2014-08-30 10:20:29

+0

做optipng需要任何環境變量? – Jigar 2014-08-30 10:21:16

+0

所需的全部是文件的路徑。 – user3143218 2014-08-30 10:21:49

回答

1
<?php 
exec('/dev/null > /tmp/optipng.log'); 
echo "origional size =". filesize('/tmp/steve-jobs.png')."\n"; 

shell_exec('/usr/local/bin/optipng -log /tmp/optipng.log /tmp/steve-jobs.png'); 
$compress = file_get_contents('/tmp/optipng.log'); 

echo "<pre>$compress</pre>"; 

echo "new size =". filesize('/tmp/steve-jobs.png')."\n"; 

?>