本文目錄一覽:
如何讓php腳本一直快速循環運行
while(true){
代碼….
}
一般在cli模式下運行,也就是命令行
PHP如何持續執行一個函數?
PHP提供4個專門的執行外部命令的函數:exec(), system(), passthru(), shell_exec()
1)exec()
原型: string exec ( string $command [, array $output [, int $return_var ]] )
說明: exec執行系統外部命令時不會輸出結果,而是返回結果的最後一行。如果想得到結果,可以使用第二個參數,讓其輸出到指定的數組。此數組一個記錄代表輸出的一行。即如果輸出結果有20行,則這個數組就有20條記錄,所以如果需要反覆輸出調用不同系統外部命令的結果,最好在輸出每一條系統外部命令結果時清空這個數組unset($output),以防混亂。第三個參數用來取得命令執行的狀態碼,通常執行成功都是返回0。
?php
exec(“dir”,$output);
print_r($output);
?
2)system()
原型: string system ( string $command [, int $return_var ] )
說明: system和exec的區別在於,system在執行系統外部命令時,直接將結果輸出到遊覽器,如果執行命令成功則返回true,否則返回false。第二個參數與exec第三個參數含義一樣。
?php
system(“pwd”);
?
3)passthru()
原型: void passthru ( string $command [, int $return_var ] )
說明: passthru與system的區別,passthru直接將結果輸出到遊覽器,不返回任何值,且其可以輸出二進制,比如圖像數據。第二個參數可選,是狀態碼。
?php
header(“Content-type:image/gif”);
passthru(“/usr/bin/ppm2tiff /usr/share/tk8.4/demos/images/teapot.ppm”);
?
4)shell_exec()
原型: string shell_exec(string $cmd)
說明: 直接執行命令$cmd
?php
$output = shell_exec(‘ls -lart’);
echo “pre$output/pre”;
?
防超時的處理方法:
當執行命令的返回結果非常龐大時,可以需要考慮將返回結果輸出至其他文件,再另行讀取文件,這樣可以顯著提高程序執行的效率。
如果要執行的命令要花費很長的時間,那麼應該把這個命令放到系統的後台去運行。但在默認情況下,
象system()等函數要等到這個命令運行完才返回(實際上是在等命令的輸出結果),
這肯定會引起PHP腳本的超時。解決的辦法是把命令的輸出重定向到另外一個文件或流中,如:
?php
system(“/usr/local/bin/order_proc /tmp/abc “);
?
?
$filename=time().”.data”;
exec(“/app/gm/gm_center/test/hello.py $filename”,$output);
var_dump ($output);
?
這個php for循環 過程是怎麼循環的?詳細解析。
for循環
for(表達式1;表達式2;表達式3){
// 循環體
}
表達式1 初始化
表達式2 表示終止條件
表達式3 改變變量
執行流程:
第一步 表達式1初始化變量,判斷是否符合(表達式2)條件,符合執行循環體,不符合不執行循環體
第二步 執行完循環體之後,執行(表達式3)改變變量,再次判斷(表達式2),滿足條件繼續執行循環體,不滿足跳出循環體
*/
原創文章,作者:QGGY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137406.html