Home> php教程> php手册> body text

PHP 调用shell命令

WBOY
Release: 2016-06-06 19:52:24
Original
1032 people have browsed it

可以使用的命令: popen fpassthru shell_exec exec system 1.popen resource popen ( string command, string mode ) 打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。 返回一个和 fopen() 所返回的相同的文件指针,只不过它是单向的

可以使用的命令:

popen
fpassthru
shell_exec
exec
system

1.popen

resourcepopen( string command, string mode )

打开一个指向进程的管道,该进程由派生给定的command命令执行而产生。

返回一个和fopen()所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用pclose()来关闭。此指针可以用于fgets()fgetss()fwrite()

如果出错返回FALSE

2.shell_exec

stringshell_exec( string cmd )

执行cmd命令,命令的结果存在返回结果中;

本函数在安全模式 下被禁用。

3.exec

stringexec( 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

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

stringsystem( 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");

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 Recommendations
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!