Home > Backend Development > PHP Tutorial > Summary of commonly used functions for executing linux commands in PHP

Summary of commonly used functions for executing linux commands in PHP

WBOY
Release: 2016-07-29 09:04:07
Original
813 people have browsed it

Normally, php is rarely used to execute Linux commands, but under special circumstances, you may use these functions. I used to know that there are two functions that can execute linux commands, one is exec and the other is shell_exec. In fact, there are many. Based on the content of the manual, the following 6 functions are introduced.

1, the exec function

<&#63;php 
$test = "ls /tmp/test"; //ls是linux下的查目录,文件的命令
exec($test,$array); //执行命令
print_r($array);
&#63;>
Copy after login

returns the following results:

[root@krlcgcms01 shell]# php ./exec.php 
Array 
( 
[0] => 1001.log 
[1] => 10.log 
[2] => 10.tar.gz 
[3] => aaa.tar.gz 
[4] => mytest 
[5] => test1101 
[6] => test1102 
[7] => weblog_2010_09 
)
Copy after login

2, the system function

<&#63;php 
$test = "ls /tmp/test";
$last = system($test);
print "last: $last\n";
&#63;>
Copy after login

returns the results:

[root@krlcgcms01 shell]# php system.php 
1001.log 
10.log 
10.tar.gz 
aaa.tar.gz 
mytest 
test1101 
test1102 
weblog_2010_09 
last:weblog_2010_09
Copy after login

3 , passthru function

<&#63;php 
$test = "ls /tmp/test";
passthru($test);
&#63;>
Copy after login

4, popen function

<&#63;php 
$test = "ls /tmp/test";
$fp = popen($test,"r"); //popen打一个进程通道

while (!feof($fp)) { //从通道里面取得东西
$out = fgets($fp, 4096);
echo $out; //打印出来
} 
pclose($fp);
&#63;>

Copy after login

5, proc_open function

<&#63;php 
$test = "ls /tmp/test";
$array = array(
array("pipe","r"), //标准输入 
array("pipe","w"), //标准输出内容 
array("pipe","w") //标准输出错误 
); 
$fp = proc_open($test,$array,$pipes); //打开一个进程通道
echo stream_get_contents($pipes[1]); //为什么是$pipes[1],因为1是输出内容
proc_close($fp);
&#63;>
Copy after login

6, shell_exec function

<&#63;php 
$test = "ls /tmp/test";
$out = shell_exec($test);
echo $out;
&#63;>
Copy after login

popen, passthru, proc_open, shell_exec The return result is as follows:

[root@krlcgcms01 shell]# php test.php 
1001.log 
10.log 
10.tar.gz 
aaa.tar.gz 
mytest 
test1101 
test1102 
weblog_2010_09
Copy after login

These are the only functions I can find that can execute commands under Linux. I think there should be more. Welcome to add.

The above has introduced a summary of common functions used by PHP to execute Linux commands, including relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template