使用exec()执行shell命令

<?php
$command = 'date "+%Y-%m-%d %H:%M:%S"';
$output = NULL; // 命令执行后的输出结果
$retval = NULL; // 命令执行后的返回状态
exec($command, $output, $retval);
var_dump($output); // array(1) { [0]=> string(19) "2008-08-08 08:08:08" }
var_dump($retval); // int(0)

//========== 总结 ==========//
// 1、必须在能执行$command命令的系统上调用exec($command),即不能在Windows执行Linux命令,反之亦然。
// 2、exec()执行命令时的身份是HTTP服务管理者,如果该用户在命令行里执行命令失败(如没有权限),那么在exec()里执行也一样会失败。
// 3、命令执行后的输出结果会以数组形式保存到$output里,并且按行填充到数组,也就是输出结果有多少行,数组就有多少元素。
// 4、exec()不支持执行会持续刷新数据的命令(如top命令)。

Copyright © 2024 码农人生. All Rights Reserved