php執行外部命令

2021-09-06 15:51:23 字數 1131 閱讀 1613

php執行外部命令的不少,例如:exec、shell_exec、system、popen等。

我特意的講一下popen,它跟其他函式不太一樣,其他函式執行乙個命令後,會等待其返回後,再向下執行,而popen則不會。

所以你想用php程式並行的處理一些業務的時候,可以用popen。

我舉個例子,有兩個php檔案,numgame.php和numgenerate.php,numgame.php迴圈的生產乙個數傳參給numgenerate.php,用popen和shell_exec做個對比(其中numgenerate.php不做更改):

numgenerate.php

1、用popen:

numgame.php:

function getnum($num)else

for($i=1111;$i<=99999;$i++)

}

2、如果在執行numgenerate.php檔案時,加入乙個&,將其放倒後台,即將

$cmd2=popen("php -f numgenerate.php $num ",'r');

改為$cmd2=popen("php -f numgenerate.php $num &",'r');

會發生什麼變化。

3、用shell_exec:

numgame.php:

function getnum($num)else

}

4、同樣的,跟第2個例子一樣,在其後面加個&,即將

shell_exec("php -f numgenerate.php $num ",'r');

改為shell_exec("php -f numgenerate.php $num &",'r');

通過執行以上四個例子,shell.log的前1000條記錄生成所需時間(記得每次執行完後,清空一下shell.log):

1、1分6秒

2、33秒

3、5分29秒

4、1分2秒

看吧,時間差距還是蠻大的。我覺得用&將命令放倒linux後台去執行,linux系統就不會等待其php程式執行的返回,從而更節省了時間。

php 無法執行外部命令 如何呼叫外部命令

呼叫外部命令的函式有很多 system passthru escapeshellcmd pcntl exec exec 關於他們的使用我不過度闡述了 然而有時候會遇到這樣的情況 當我們在php指令碼中新增了這樣的命令 例 exec rm rf a b c html 的時候 始終不能執行 問題一 我碰...

PHP中執行系統外部命令

php作為一種伺服器端的指令碼語言,象編寫簡單,或者是複雜的動態網頁這樣的任務,它完全能夠勝任。但事情不總是如此,有時為了實現某個功能,必須借助於作業系統的外部程式 或者稱之為命令 這樣可以做到事半功倍。那麼,是否可以在php指令碼中呼叫外部命令呢?如果能,如何去做呢?有些什麼方面的顧慮呢?相信你看...

PHP 中執行系統外部命令

php作為一種伺服器端的指令碼語言,象編寫簡單,或者是複雜的動態網頁這樣的任務,它完全能夠勝任。但事情不總是如此,有時為了實現某個功能,必須借助於作業系統的外部程式 或者稱之為命令 這樣可以做到事半功倍。那麼,是否可以在php指令碼中呼叫外部命令呢?如果能,如何去做呢?有些什麼方面的顧慮呢?相信你看...