php执行外部命令函数:exec()、passthru()、system()、shell_exec()对比
2017-11-25 10:02
851 查看
PHP提供了4种方法执行系统外部命令:exec()、passthru()、system()、shell_exec(),下面分别介绍:
1、exec
原型:string exec ( string $command [, array &$output [, int &$return_var ]] )
exec执行command命令,但是不会输出全部结果,而是返回结果的最后一行,如果你想得到全部的结果,可以使用第二个参数,让其输出到一个数组,数组的每一个记录代表了输出的每一行,如果输出结果有10行,则数组就有10条记录。所以如果你需要反复输出调用不同系统外部命令的结果,你最好在输出每一条系统外部命令结果时清空这个数组,以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。举例:
[php] view plain copy
<?php
exec('ls /home/xyw/test');
?>
没有输出。
[php] view plain copy
<?php
exec('ls /home/xyw/test',$arr);
print_r($arr);
?>
输出:
[plain] view plain copy
Array
(
[0] => list.txt
[1] => list.txt.ln
[2] => tcpdump中文手册.doc
[3] => test1
[4] => 北邮校徽.jpg
[5] => 浪潮之巅.pdf
)
2、passthru
原型:void passthru ( string $command [, int &$return_var ] )
与exec的区别:passthru直接将结果输出,不返回结果,不用使用echo查看结果。
[php] view plain copy
<?php
passthru("ls test");
?>
结果:
[plain] view plain copy
list.txt
list.txt.ln
tcpdump中文手册.doc
test1
北邮校徽.jpg
浪潮之巅.pdf
3、system
原型:string system ( string $command [, int &$return_var ] )
与passthru的基本相同,但是system返回结果并且输出。(查看system和pssthru的返回值可以看出)
4、shell_exec
是反撇号 (`) 操作符的变体.
[plain] view plain copy
<?php
echo `pwd`;
?>
1、exec
原型:string exec ( string $command [, array &$output [, int &$return_var ]] )
exec执行command命令,但是不会输出全部结果,而是返回结果的最后一行,如果你想得到全部的结果,可以使用第二个参数,让其输出到一个数组,数组的每一个记录代表了输出的每一行,如果输出结果有10行,则数组就有10条记录。所以如果你需要反复输出调用不同系统外部命令的结果,你最好在输出每一条系统外部命令结果时清空这个数组,以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。举例:
[php] view plain copy
<?php
exec('ls /home/xyw/test');
?>
没有输出。
[php] view plain copy
<?php
exec('ls /home/xyw/test',$arr);
print_r($arr);
?>
输出:
[plain] view plain copy
Array
(
[0] => list.txt
[1] => list.txt.ln
[2] => tcpdump中文手册.doc
[3] => test1
[4] => 北邮校徽.jpg
[5] => 浪潮之巅.pdf
)
2、passthru
原型:void passthru ( string $command [, int &$return_var ] )
与exec的区别:passthru直接将结果输出,不返回结果,不用使用echo查看结果。
[php] view plain copy
<?php
passthru("ls test");
?>
结果:
[plain] view plain copy
list.txt
list.txt.ln
tcpdump中文手册.doc
test1
北邮校徽.jpg
浪潮之巅.pdf
3、system
原型:string system ( string $command [, int &$return_var ] )
与passthru的基本相同,但是system返回结果并且输出。(查看system和pssthru的返回值可以看出)
4、shell_exec
是反撇号 (`) 操作符的变体.
[plain] view plain copy
<?php
echo `pwd`;
?>
相关文章推荐
- php执行外部命令函数:exec()、passthru()、system()、shell_exec()对比
- PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
- PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()
- PHP 执行系统外部命令的函数- system() exec() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- php 执行外部命令exec() system() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- php执行shell命令,system、exec、passthru
- PHP 执行系统外部命令 system() exec() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- php -- PHP在linux上执行外部命令,system(),exec(),shell_exec()
- PHP 执行系统外部命令 system() exec() passthru()
- PHP 执行系统外部命令 system() exec() passthru()
- PHP在Linux下Apache环境中执行exec,system,passthru等服务器命令函数
- PHP 执行系统外部命令 system() exec() passthru()