亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP啟動windows應用程序、執行bat批處理、執行cmd命令的方法(exec、system函數詳解)

2024-05-04 23:26:13
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP啟動windows應用程序、執行bat批處理、執行cmd命令的方法(exec、system函數詳解),需要的朋友可以參考下
 
 

exec 或者 system 都可以調用cmd 的命令

直接上代碼:

 

復制代碼代碼如下:

<?php
/** 打開windows的計算器 */
exec('start C:WindowsSystem32calc.exe');

 

/** php生成windows的批處理文件后,再執行這個批處理文件*/
$filename = 't.bat';
$somecontent = 'C:
';
$somecontent .= 'cd "C:/Program Files/MySQL-Front"';
$somecontent .= '
start MySQL-Front.exe';
if (!$handle = fopen($filename, 'w')) {
 echo "不能打開文件 $filename";
 exit;
}

/** 首先我們要確定文件存在并且可寫*/
if (is_writable($filename)) {

 /** 那就是當我們使用fwrite()的時候,$somecontent將要寫入的地方
  將$somecontent寫入到我們打開的文件中 。*/
 if (fwrite($handle, $somecontent) === FALSE) {
  echo "不能寫入到文件 $filename";
  exit;
 }
 echo "成功地將 $somecontent 寫入到文件 $filename";
 fclose($handle);
} else {
 echo "文件 $filename 不可寫";
}
exec($filename);
?>

 

有一個遺留問題,就是exec()調用,php會一直執行,直到你關閉啟動的應用程序,這樣會造成php執行超時,不知道怎么解決這個問題,希望高手路過此地,留下答案!我日后解決了,也會更新到這里的!

以下來自資料

=================================================

php的內置函數exec,system都可以調用系統命令(shell命令),當然還有passthru,escapeshellcmd等函數。

在很多時候利用php的exec,system等函數調用系統命令可以幫助我們更好更快的完成工作。

注意:要想使用這二個函數 php.ini 中的安全模式必須關閉,要不然為了安全起見php是不讓調用系統命令的。

先看一下php手冊對這二個函數的解釋:

exec --- 執行外部程式

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

說明 :
exec()執行給予的命令command,不過它并不會輸出任何東西,它簡單的從命令的結果中傳回最后一行,如果你需要去執行一個命令,并且從命令去取得所有資料時,可以使用passthru()這個函數。
如果有給予參數array,則指定的數組將會被命令所輸出的每一行填滿,注意 : 如果數組先前已經包含了一些元素的話,exec()將會把它附加在數組的后面,如果你不想要此函數附加元素的話,你可以在傳遞此數組給exec()之前呼叫unset()。
如果有給予參數array和return_var,則傳回執行的狀態命令將會寫到這個變量。

注意: 如果你允許來自使用者輸入的資料,可以傳遞到此函數,那么你應該使用escapeshellcmd( )來確定此使用者無法哄騙(trick)系統來執行武斷的(arbitrary)命令。

注意: 如果你使用此函數來啟動一個程式,而且希望在背景里(background)執行的時候離開它,你必須確定此程式的輸出是轉向(redirected)到一個文件或是一些輸出的資料流,否則PHP將會懸掛(hang)直到程式執行結束。

system --- 執行外部程式并且顯示輸出

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

說明:

system( )執行給予的命令command,并且輸出結果。如果有給予參數return_var,則執行命令的狀態碼將會寫到這個變量。

注意: 如果你允許來自使用者輸入的資料,可以傳遞到此函數,那么你應該使用escapeshellcmd( )來確定此使用者無法哄騙(trick)系統來執行武斷的(arbitrary)命令。

注意: 如果你使用此函數來啟動一個程式,而且希望在背景里(background)執行的時候離開它,你必須確定此程式的輸出是轉向(redirected)到一個文件或是一些輸出的資料流,否則PHP將會懸掛(hang)直到程式執行結束。
如果PHP是運作成伺服器模組,在輸出每一行后,system( )會試著自動地清除web伺服器的輸出緩沖。

成功則傳回命令的最后一行,失敗則傳回false。

如果你需要去執行一個命令,并且從命令去取得所有資料時,可以使用passthru( )這個函數。

這二個都是用來調用系統shell命令,

不同點:

exec可以把執行的結果全部返回到$output函數里(數組),$status是執行的狀態 0為成功 1為失敗

systerm不需要提供$output函數,他是直接把結果返回出來,同樣$return_var是執行的狀態碼 0為成功 1為失敗

exec示例:

復制代碼代碼如下:

<?php
 $a = exec("dir", $out, $status);
 print_r($a);
 print_r($out);
 print_r($status);
?>

system示例:
復制代碼代碼如下:

<?php
 $a = system("dir", $status);
 print_r($a);
 print_r($status);
?>

 

上面說明看起來有點亂,運行兩個例子后,你就會明白的!

【system】

 

復制代碼代碼如下:

<?php
set_time_limit(0);
define('ROOT_PATH', dirname(__FILE__));

 

include ROOT_PATH . '/include/global.func.php';

$cmdTest = 'ps -ef | grep magent';

$lastLine = system($cmdTest, $retVal);

write_log('$lastLine');
write_log($lastLine);

write_log('$retVal');
write_log($retVal);
?>

 

輸出:

 

復制代碼代碼如下:

++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:28:52
$lastLine
++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:28:52
root      5375  5373  0 16:28 pts/1    00:00:00 grep magent
++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:28:52
$retVal
++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:28:52
0

 

【exec】

 

復制代碼代碼如下:

<?php
set_time_limit(0);
define('ROOT_PATH', dirname(__FILE__));

 

include ROOT_PATH . '/include/global.func.php';

$cmdTest = 'ps -ef | grep magent';

$lastLine = exec($cmdTest, $output, $retVal);

write_log('$lastLine');
write_log($lastLine);

write_log('$output');
write_log($output);

write_log('$retVal');
write_log($retVal);
?>

 

輸出:

復制代碼代碼如下:

++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
$lastLine
++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
root      5360  5358  0 16:25 pts/1    00:00:00 grep magent
++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
$output
++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
Array
(
    [0] => root      2838     1  0 15:39 ?        00:00:00 magent -u root -n 51200 -l 192.168.137.100 -p 12001 -s 192.168.137.100:11211 -b 192.168.137.100:11212
    [1] => root      5358  5356  0 16:25 pts/1    00:00:00 sh -c ps -ef | grep magent
    [2] => root      5360  5358  0 16:25 pts/1    00:00:00 grep magent
)

 

++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
$retVal
++++++++++++++++++++++++++++++++++++++++++
2014-10-15 16:25:00
0

 

結論:

如果需要詳細的輸出結果,那就用exec()吧!我一般用exec()執行外部命令!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲激情国产精品| 中文字幕精品av| 91精品久久久久久久久| 久久久999国产精品| 国产精品美女在线观看| 亚洲欧洲免费视频| 亚洲va码欧洲m码| 狠狠色狠色综合曰曰| 揄拍成人国产精品视频| 国产精品久久视频| 日韩a**站在线观看| 91av福利视频| 亚洲在线第一页| 亚洲自拍偷拍区| 日韩精品视频在线观看免费| 欧美日韩国产在线播放| 久久久久久久久久久成人| 国产成人精品a视频一区www| 亚洲成年人影院在线| 久久久免费av| 欧美国产乱视频| 亚洲第一区第一页| 美女国内精品自产拍在线播放| 国产精品亚洲综合天堂夜夜| 久久av中文字幕| 91高潮精品免费porn| 亚洲人成在线免费观看| 亚洲精品v欧美精品v日韩精品| 欧美影院在线播放| 日韩高清电影好看的电视剧电影| www.亚洲免费视频| 国产精品香蕉在线观看| 亚洲自拍偷拍一区| 亚洲欧洲一区二区三区在线观看| 清纯唯美亚洲综合| 欧美激情第6页| 国产成人精品免费视频| 成人黄色免费在线观看| 亚洲激情视频网站| 97精品伊人久久久大香线蕉| 91av在线网站| 亚洲成人黄色网址| 欧美性jizz18性欧美| 亚洲男人第一网站| 亚洲成年网站在线观看| 高跟丝袜一区二区三区| 欧美另类极品videosbestfree| 亚洲欧美一区二区三区在线| 精品视频久久久久久| 欧美在线性爱视频| 国产精品揄拍500视频| 美女国内精品自产拍在线播放| 亚洲色图综合网| 亚洲第一视频网站| 亚洲国产精品嫩草影院久久| 欧美在线激情网| 久久久久久国产| 国产高清视频一区三区| 亚洲福利视频久久| 国产精品久久久久久av下载红粉| 日韩免费观看视频| 日韩欧美成人网| 一区二区三区国产在线观看| 欧美日韩精品在线视频| 国产亚洲激情在线| 亚洲女性裸体视频| 久热在线中文字幕色999舞| 日韩亚洲综合在线| 国产视频在线观看一区二区| 国产一区二区激情| 国产精品久久久久久影视| 欧洲中文字幕国产精品| 美女久久久久久久久久久| 欧美激情亚洲一区| 国产成人在线一区| 最近2019年中文视频免费在线观看| 91黄色8090| 久久这里只有精品99| 亚洲欧美中文字幕在线一区| 亚洲精品动漫久久久久| 国产不卡视频在线| 91黄色8090| 欧美成人精品三级在线观看| 国产精品xxxxx| 色999日韩欧美国产| 538国产精品一区二区免费视频| 97在线视频国产| 国产精品爽爽爽爽爽爽在线观看| 日韩国产欧美精品一区二区三区| 日韩av不卡电影| 国产精品久久久久久久久免费| 国产日韩在线看片| 久久精品在线视频| 狠狠操狠狠色综合网| 国产福利成人在线| 菠萝蜜影院一区二区免费| 久久综合色影院| 日韩在线欧美在线国产在线| 欧美性猛交xxxx乱大交极品| 欧美大成色www永久网站婷| 日本久久久久久| 91免费福利视频| 伊人久久男人天堂| 亚洲欧美中文字幕在线一区| 激情亚洲一区二区三区四区| 国产一区二区丝袜| 中文字幕精品久久| 国产精品久久久久久久久久新婚| 国产一区二区三区视频免费| 国产精品精品视频| 欧美日韩美女在线观看| 国产精品久久av| 亚洲欧美另类人妖| 国产精品一区二区久久精品| 96sao精品视频在线观看| 日韩欧美高清在线视频| 中文字幕亚洲图片| 国产色婷婷国产综合在线理论片a| 欧美午夜激情视频| 日韩精品高清在线观看| 亚洲精品福利视频| 日韩精品极品在线观看播放免费视频| 国内精品久久久久影院 日本资源| 国产精选久久久久久| 久久人人爽人人爽人人片av高请| 欧美精品一区二区免费| 国产精品久久久久久久电影| 国产精品露脸av在线| www日韩中文字幕在线看| 欧美精品一二区| 亚洲成人精品久久| 91国产高清在线| 亚洲图片欧美午夜| 亚洲毛片一区二区| 日韩毛片在线看| 69影院欧美专区视频| 亚洲精品在线看| 国产日韩精品入口| 国产精品18久久久久久首页狼| 亚洲男人第一网站| 91免费综合在线| 久久99久久亚洲国产| 久久免费视频观看| 国产极品精品在线观看| 国产精品高潮呻吟视频| 疯狂做受xxxx高潮欧美日本| 91视频国产高清| 日韩一级裸体免费视频| 综合久久五月天| 欧美日韩国产综合视频在线观看中文| 亚洲欧洲国产伦综合| 日韩av电影中文字幕| 91视频九色网站| 色悠悠国产精品| 欧美尤物巨大精品爽| 日韩中文在线视频| 成人做爽爽免费视频| 精品综合久久久久久97| 91午夜理伦私人影院| 亚洲欧美激情四射在线日| 欧美日韩精品国产| 国内精品免费午夜毛片| 久久久国产视频| 国产91成人在在线播放|