欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP中如何判斷exec函數(shù)執(zhí)行成功?

 更新時(shí)間:2016年08月04日 11:27:04   投稿:daisy  
在PHP日常開(kāi)發(fā)中有時(shí)候會(huì)要判斷exec函數(shù)是否執(zhí)行成功了呢?那如何判斷呢?下面跟著小編一起通過(guò)本文來(lái)學(xué)習(xí)學(xué)習(xí)。

前言

做一個(gè)代碼發(fā)布的系統(tǒng),需要用到PHP的exec函數(shù)來(lái)執(zhí)行Linux下的命令和git,svn命令,如何判斷PHP的exec函數(shù)是否執(zhí)行成功呢?

解決方案

寫個(gè)PHP文件來(lái)做實(shí)驗(yàn):

exec函數(shù)第一個(gè)參數(shù)是執(zhí)行的命令,第二個(gè)參數(shù)是執(zhí)行的結(jié)果,第三個(gè)參數(shù)是執(zhí)行的狀態(tài)。

<?php

exec('ls', $log, $status);

print_r($log);

print_r($status);

echo PHP_EOL;

執(zhí)行這個(gè)php文件:

這里$log,$status輸出結(jié)果如圖。

但是$status為0,給人的感覺(jué)是執(zhí)行失敗,其實(shí)不是,這是exec執(zhí)行成功。

改一下這個(gè)php文件,給exec第一個(gè)參數(shù)一個(gè)錯(cuò)誤的命令。

如:exec(‘lsaa',$log,$status).

再次執(zhí)行,運(yùn)行結(jié)果如圖:

這里$status確是有值的。

那么證明$status為0的時(shí)候表示exec執(zhí)行是成功的。這里PHP官方手冊(cè)上并沒(méi)有明確說(shuō)明。

最終這個(gè)執(zhí)行命令的方法如下:

PHP exec執(zhí)行命令PHP

public function runLocalCommand($command) {
  $command = trim($command);
  $status = 1;
  $log = '';
  exec($command . ' 2>&1', $log, $status);
  // 執(zhí)行過(guò)的命令
  $this->command = $command;
  // 執(zhí)行的狀態(tài)
  $this->status = !$status;
  return $this->status;
}

去除了日志記錄和其他的判斷。

注意這里:

$this->status = !$status;

返回狀態(tài)的時(shí)候取相反的值!

總結(jié)

以上就是PHP中判斷exec函數(shù)是否執(zhí)行成功的詳細(xì)內(nèi)容及實(shí)例代碼,有助于幫助大家深入掌握PHP開(kāi)發(fā),希望本文所述對(duì)大家PHP開(kāi)發(fā)的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評(píng)論