中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中system和exec存在著什么不同

發布時間:2020-09-04 14:19:38 來源:億速云 閱讀:170 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關php中system和exec存在著什么不同的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

區別:system()函數可以輸出和返回結果;第二個參數是可選的,用來得到命令執行后的狀態碼。exec()不輸出結果,而是返回結果的最后一行;雖然它只返回命令結果的最后一行,但用第二個參數array可以得到完整的結果。

php中system和exec存在著什么不同

在PHP中調用外部命令,可以用exec 及 system來實現。那么它們之間有什么差異,下面本篇文章給大家介紹一下php中system和exec的區別。

一、exec  ---執行外部程序

string exec ( string $command [, array &$output [, int &$return_var ]] )

$command:要執行的shell 命令

$output:shell命令的輸出填充此數組,每行輸出填充數組中的一個元素。 請注意,如果數組中已經包含了部分元素,exec() 函數會在數組末尾追加內容。如果你不想在數組末尾進行追加,請在傳入 exec() 函數之前 對數組使用 unset() 函數進行重置。

$return_var  命令執行后的返回狀態,命令執行成功值是0

返回值:shell命令輸出的最后一行

ps:   2>&1  exec不成功,調試方案一個技巧就是使用管道命令, 使用 2>&1, 命令就會輸出shell執行時的錯誤到$output變量, 輸出該變量即可分析。

例子1

(1)代碼所在的index.php 文件的結構

  php中system和exec存在著什么不同

(2)代碼

$out = [34];
$res = exec('ls 2>&1',$out,$return_status);
var_dump($res);
echo '------';
var_dump($out);
echo '------';
var_dump($return_status);

(3)執行結果

zhangxueqing:demo playcrab$ php  ./1/index.php
/Users/playcrab/www/demo/1/index.php:10:
string(11) "webuploader"
------/Users/playcrab/www/demo/1/index.php:12:
array(10) {
  [0] =>
  int(34)
  [1] =>
  string(1) "1"
  [2] =>
  string(6) "1.html"
  [3] =>
  string(5) "1.php"
  [4] =>
  string(10) "client.php"
  [5] =>
  string(14) "design-pattern"
  [6] =>
  string(3) "img"
  [7] =>
  string(17) "jquery.blockUI.js"
  [8] =>
  string(10) "static.php"
  [9] =>
  string(11) "webuploader"
}
------/Users/playcrab/www/demo/1/index.php:14:
int(0)

二、system ---執行外部程序,并且顯示輸出

string system ( string $command [, int &$return_var ] )

$command  要執行的命令

$return_var  命令執行后的返回狀態,值是0表示成功

返回結果:

  • 成功返回0,

  • 失敗(命令不存在等原因)   返回   非0值

1.示例代碼

$res = system('ls 2>&1',$return_status);var_dump($res);echo '------';var_dump($return_status);

2.輸出結果

php中system和exec存在著什么不同

總結:

system()函數很其它語言中的差不多,它執行給定的命令,輸出和返回結果。第二個參數是可選的,用來得到命令執行后的狀態碼

exec ()函數與system()類似,也執行給定的命令,但不輸出結果,而是返回結果的最后一行。雖然它只返回命令結果的最后一行,但用第二個參數array 可以得到完整的結果,方法是把結果逐行追加到array的結尾處。所以如果array不是空的,在調用之前最好用unset()最它清掉。只有指定了第二 個參數時,才可以用第三個參數,用來取得命令執行的狀態碼。

感謝各位的閱讀!關于php中system和exec存在著什么不同就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荥阳市| 天峻县| 融水| 辉县市| 清丰县| 江永县| 当雄县| 彭山县| 武城县| 沧源| 梁山县| 民丰县| 崇礼县| 汝州市| 佛坪县| 泉州市| 深圳市| 西安市| 昌图县| 南木林县| 黔西| 赤峰市| 邵武市| 辉县市| 从化市| 乐山市| 叶城县| 延安市| 阿坝县| 孟津县| 肥西县| 鄂伦春自治旗| 乌审旗| 海伦市| 武邑县| 务川| 田东县| 桦甸市| 万山特区| 绥棱县| 千阳县|