Heim > php教程 > php手册 > Hauptteil

php执行外部命令函数:exec()、passthru()、system()、shell

WBOY
Freigeben: 2016-06-06 20:00:19
Original
1311 Leute haben es durchsucht

PHP提供了4种方法执行系统外部命令:exec()、passthru()、system()、shell_exec(),下面分别介绍: 1、exec 原型:string exec ( string $command [, array $output [, int $return_var ]] ) exec执行command命令,但是不会输出全部结果,而是返回结果的最后

PHP提供了4种方法执行系统外部命令:exec()、passthru()、system()、shell_exec(),下面分别介绍:

1、exec

原型:string exec ( string $command [, array &$output [, int &$return_var ]] )

exec执行command命令,但是不会输出全部结果,而是返回结果的最后一行,如果你想得到全部的结果,可以使用第二个参数,让其输出到一个数组,数组的每一个记录代表了输出的每一行,如果输出结果有10行,则数组就有10条记录。所以如果你需要反复输出调用不同系统外部命令的结果,你最好在输出每一条系统外部命令结果时清空这个数组,以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。举例:

<?php exec('ls /home/xyw/test');
?>
Nach dem Login kopieren
没有输出。
<?php exec('ls /home/xyw/test',$arr);
print_r($arr);
?>
Nach dem Login kopieren
输出:
Array
(
    [0] => list.txt
    [1] => list.txt.ln
    [2] => tcpdump中文手册.doc
    [3] => test1
    [4] => 北邮校徽.jpg
    [5] => 浪潮之巅.pdf
)
Nach dem Login kopieren
2、passthru

原型:void passthru ( string $command [, int &$return_var ] )

与exec的区别:passthru直接将结果输出,不返回结果,不用使用echo查看结果。

<?php passthru("ls test");
?>
Nach dem Login kopieren
结果:
list.txt
list.txt.ln
tcpdump中文手册.doc
test1
北邮校徽.jpg
浪潮之巅.pdf
Nach dem Login kopieren
3、system

原型:string system ( string $command [, int &$return_var ] )

与passthru的基本相同,但是system返回结果并且输出。(查看system和pssthru的返回值可以看出)

4、shell_exec

是反撇号 (`) 操作符的变体.

<?php echo `pwd`;
?>
Nach dem Login kopieren
参考:http://hi.baidu.com/cszhi/item/d71d61f22feefe16ce9f32d1

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage