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

首頁 > 開發(fā) > PHP > 正文

PHP調(diào)用linux外部命令的例子

2024-05-04 21:50:20
字體:
供稿:網(wǎng)友

相信大家或多或少都用過AMH,Vestacp等vps面板,這些面板都是使用的php語言,從本質(zhì)上來說就是php執(zhí)行l(wèi)inux的外部命令。

PHP 為執(zhí)行外部命令提供大量函數(shù),其中包括 shell_exec()、exec()、passthru() 和 system()。這些命令是相似的,但為您運行的外部程序提供不同的界面。所有這些命令都衍生一個子進程,用于運行您指定的命令或腳本,并且每個子進程會在命令輸出寫到標(biāo)準輸出 (stdout) 時捕捉它們。

shell_exec函數(shù)

說明:通過 shell 運行外部程序,然后以字符串的形式返回結(jié)果。

語法:string shell_exec ( string $cmd )

返回值: 字符串

詳細介紹

shell_exec() 命令行實際上僅是反撇號 (`) 操作符的變體,通過該命令可以運行shell命令,然后以字符串的形式返回結(jié)果。

示例代碼

統(tǒng)計當(dāng)前目錄下所有文件中的單詞數(shù)量,并輸出前五行。

  1. $results = shell_exec('wc -w *.txt | head -5'); 
  2. echo "
    ".$results . " 
  3. “; 
  4. ?> 

exec函數(shù)

說明:與 shell_exec() 相似,返回輸出的最后一行

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

返回值: 字符串

詳細介紹:

本函數(shù)執(zhí)行輸入 command 的外部程序或外部指令。它的返回字符串只是外部程序執(zhí)行后返回的最后一行;若是 return_var 跟 output 二個參數(shù)都存在,則執(zhí)行 command 之后的狀態(tài)會填入 return_var 中。

實例代碼:

統(tǒng)計當(dāng)前目錄下所有文件中的單詞數(shù)量,并輸出前五行,但是實際上只輸出了一行。

  1. $results = exec('wc -w *.txt | head -5'); 
  2. echo $results
  3.  
  4. #只會輸出一行: 
  5. #3847 myfile.txt 
  6. ?> 

passthru()

說明:passthru() 允許您運行外部程序,并在屏幕上顯示結(jié)果。

語法:void passthru ( string $command [, int &$return_var ] )

返回值: 整數(shù)

詳細介紹:

passthru() 允許您運行外部程序,并在屏幕上顯示結(jié)果。您不需要使用 echo 或 return 來查看結(jié)果;它們會顯示在瀏覽器上。您可以添加可選的參數(shù),即保存從外部程序返回的代碼的變量,比如表示成功的 0,這為調(diào)試提供更好的機制。

實例代碼:

  1. passthru('wc -w *.txt | head -5',$returnval); 
  2. echo "
    ".$returnval
  3. ?> 

system函數(shù)

說明:執(zhí)行外部程序并顯示輸出資料。

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

返回值: 字符串

詳細介紹

system() 命令是一種混合體。它像 passthru() 一樣直接輸出從外部程序接收到的任何東西。它還像 exec() 一樣返回最后一行,并使返回代碼可用。

示例代碼

  1. system('wc -w *.txt | head -5'); 
  2.  
  3. #輸出如下: 
  4. #123 file1.txt 332 file2.txt 444 file3.txt 
  5. #and so on 
  6. ?> 

小結(jié):

一般來說,exec() 命令比較常用;

如果不關(guān)心結(jié)果,并且命令比較簡單時,可以使用 shell_exec();

如果僅需返回一個 shell 腳本,可以使用 passthru()。

不過小編還是要說一句,沒有必須使用php執(zhí)行系統(tǒng)函數(shù)了,我們可以禁止掉了,在php.ini中我們?nèi)缦聦?

disable_functions = proc_open,exec,passthru,shell_exec,system,popen

就可以了。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 万年县| 罗定市| 招远市| 汤阴县| 贡嘎县| 枣阳市| 泰州市| 灵石县| 古浪县| 长宁区| 苍梧县| 西贡区| 六安市| 屯昌县| 汝南县| 东兴市| 无棣县| 高密市| 上虞市| 靖边县| 龙山县| 台安县| 聂荣县| 杨浦区| 浪卡子县| 郑州市| 永顺县| 屯昌县| 灵川县| 华容县| 丰原市| 宣威市| 万州区| 金坛市| 宜兴市| 定安县| 长寿区| 富民县| 修文县| 嘉峪关市| 锡林郭勒盟|