国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

檢查PHP的exec函數是否執行成功

2024-09-04 11:49:29
字體:
來源:轉載
供稿:網友

做一個代碼發布的系統,需要用到PHP的exec函數來執行Linux下的命令和git,svn命令,如何判斷PHP的exec函數是否執行成功呢?

寫個PHP文件來做實驗:

exec函數解析

exec語法: string exec(string command, string [array], int [return_var]);

exec返回值: 字符串

Exec參數說明

Command – 需要執行的命令

Array –  是輸出值

return_var –是返回值0或1,如果返回0則執行成功,返回1則執行失敗。

exec函數第一個參數是執行的命令,第二個參數是執行的結果,第三個參數是執行的狀態。

  1. exec('ls'$log$status); 
  2.  
  3. print_r($log); 
  4.  
  5. print_r($status); 
  6.  
  7. echo PHP_EOL; 

執行這個php文件:

  1. vagrant@homestead:~$ sudo vim aa.php 
  2. vagrant@homestead:~$ php aa.php 
  3. Array 
  4.   [0] => aa.php 
  5.   [1] => tanteng.me 
  6.   [2] => test.sh 

檢查PHP的exec函數是否執行成功

這里$log,$status輸出結果如圖。

但是$status為0,給人的感覺是執行失敗,其實不是,這是exec執行成功。

改一下這個php文件,給exec第一個參數一個錯誤的命令。

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

再次執行,運行結果如圖:

  1. vagrant@homestead:~$ sudo vim aa.php 
  2. vagrant@homestead:~$ php aa.php 
  3. Array 
  4. 127 

檢查PHP的exec函數是否執行成功

這里$status確是有值的。

那么證明$status為0的時候表示exec執行是成功的。這里PHP官方手冊上并沒有明確說明。

最終這個執行命令的方法如下:

PHP exec執行命令PHP

  1. public function runLocalCommand($command) { 
  2.     $command = trim($command); 
  3.     $status = 1; 
  4.     $log = ''
  5.     exec($command . ' 2>&1'$log$status); 
  6.     // 執行過的命令 
  7.     $this->command = $command
  8.     // 執行的狀態 Vevb.com 
  9.     $this->status = !$status
  10.     return $this->status; 

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

注意這里:

$this->status = !$status;

返回狀態的時候取相反的值!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沐川县| 衡南县| 河北区| 修水县| 平顶山市| 江都市| 凤台县| 衡东县| 平原县| 文安县| 名山县| 尚义县| 桓台县| 肃南| 临海市| 天长市| 安义县| 济宁市| 德州市| 高密市| 玉环县| 繁峙县| 文水县| 通化县| 金华市| 奈曼旗| 保山市| 合川市| 浦县| 深圳市| 禹州市| 新昌县| 石柱| 南华县| 咸丰县| 文安县| 祁门县| 德庆县| 特克斯县| 安阳市| 万山特区|