PHP中如何判斷exec函數(shù)執(zhí)行成功?
前言
做一個代碼發(fā)布的系統(tǒng),需要用到PHP的exec函數(shù)來執(zhí)行Linux下的命令和git,svn命令,如何判斷PHP的exec函數(shù)是否執(zhí)行成功呢?
解決方案
寫個PHP文件來做實驗:
exec函數(shù)第一個參數(shù)是執(zhí)行的命令,第二個參數(shù)是執(zhí)行的結(jié)果,第三個參數(shù)是執(zhí)行的狀態(tài)。
<?php
exec('ls', $log, $status);
print_r($log);
print_r($status);
echo PHP_EOL;
執(zhí)行這個php文件:

這里$log,$status輸出結(jié)果如圖。
但是$status為0,給人的感覺是執(zhí)行失敗,其實不是,這是exec執(zhí)行成功。
改一下這個php文件,給exec第一個參數(shù)一個錯誤的命令。
如:exec(‘lsaa',$log,$status).
再次執(zhí)行,運行結(jié)果如圖:

這里$status確是有值的。
那么證明$status為0的時候表示exec執(zhí)行是成功的。這里PHP官方手冊上并沒有明確說明。
最終這個執(zhí)行命令的方法如下:
PHP exec執(zhí)行命令PHP
public function runLocalCommand($command) {
$command = trim($command);
$status = 1;
$log = '';
exec($command . ' 2>&1', $log, $status);
// 執(zhí)行過的命令
$this->command = $command;
// 執(zhí)行的狀態(tài)
$this->status = !$status;
return $this->status;
}
去除了日志記錄和其他的判斷。
注意這里:
$this->status = !$status;
返回狀態(tài)的時候取相反的值!
總結(jié)
以上就是PHP中判斷exec函數(shù)是否執(zhí)行成功的詳細內(nèi)容及實例代碼,有助于幫助大家深入掌握PHP開發(fā),希望本文所述對大家PHP開發(fā)的學習有所幫助。
相關(guān)文章
讓CodeIgniter的ellipsize()支持中文截斷的方法
CodeIgniter的Text Helper有一個ellipsize()方法,用來過濾HTML標簽并且截斷文字十分好用。但是它對中文支持的特別不好,在中文中使用就有亂碼出現(xiàn)。這篇文章主要介紹了讓CodeIgniter的ellipsize()支持中文截斷的方法,需要的朋友可以參考下2014-06-06
yii2框架中使用下拉菜單的自動搜索yii-widget-select2實例分析
這篇文章主要介紹了yii2框架中使用下拉菜單的自動搜索yii-widget-select2的方法,介紹了yii-widget-select2的下載,安裝及具體使用技巧,需要的朋友可以參考下2016-01-01
php curl抓取網(wǎng)頁的介紹和推廣及使用CURL抓取淘寶頁面集成方法
抓取網(wǎng)頁內(nèi)容,分析網(wǎng)頁數(shù)據(jù)經(jīng)常使用php curl,簡潔易用,本篇文章通過代碼實例給大家講解 php curl抓取網(wǎng)頁的介紹和推廣及使用CURL抓取淘寶頁面集成方法,需要的朋友參考下2015-11-11

