可以使用的命令:
popen
fpassthru
shell_exec
exec
system
1.popen
resource popen
( string command, string mode )
開啟一個指向進程的管道,該進程由派生給定的 command
命令執行而產生。
返回一個和 fopen()
所返回的相同的檔案指標,只不過它是單向的(只能用於讀或寫)並且必須用 pclose()
來關閉。此指標可以用於 fgets()
,fgetss()
和 fwrite()
。
如果出錯返回 FALSE
。
2.shell_exec
string shell_exec
( string cmd )
執行cmd命令,命令的結果存在返回結果中;
本函數在安全模式
下被禁用。
3.exec
string exec
( string command [, array &output [, int &return_var]] )
參數:
command
將要執行的命令
output
如果指定了output參數,則對應的array數組將會填滿該命令輸出的每一行。
return_var
如果指定了return_var參數,注意,return_var參數只有output參數被設定後才能指定,那麼該命令的執行狀態將會以結果參數的形式返回給該變數。
傳回值:
返回改名了的最後一行結果。
範例
例子 1. An exec() example
[root@south4 demo]# vi test.php
#!/usr/bin/php -q
<?php
exec('ls /etc',$results,$ret);
echo $results[5] . "/n";
echo $results[12]. "/n";
echo $results[3]. "/n";
echo $ret;
?>
[root@south4 demo]# ./test.php
aliases
audit
adjtime
0
4.system
string system
( string command [, int &return_var] )
system是開一個bash進程的,執行完畢之後,就會釋放,如下就會達不到目的:
system("cd /home/y/share/NBHadoop/scripts");
system("sudo -u yahoo ./nb_halfhourly.sh $yes_halfHour");
可以寫成:
system("cd /home/y/share/NBHadoop/scripts;sudo -u yahoo ./nb_halfhourly.sh $yes_halfHour");