在 PHP 中,有几个命令行工具可以用来执行操作系统命令,这些工具包括 shell_exec、exec、passthru、system。下面将对这几个工具进行详细介绍。
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
在 PHP 中,有几个命令行工具可以用来执行操作系统命令,这些工具包括 shell_exec
、exec
、passthru
、system
。下面将对这几个工具进行详细介绍。
shell_exec 函数
shell_exec
函数执行命令,返回命令执行后的输出(标准输出),如果命令执行失败,返回 null
。该函数需要 PHP 的安全模式关闭才能正常工作。
示例:
$output = shell_exec('ls -l');
echo "<pre>$output</pre>";
上面的例子会打印出当前目录下的文件和子目录的详细信息。
exec 函数
exec
函数和 shell_exec
函数都可以执行命令并返回输出,但是 exec
函数还可以返回命令的状态码(状态码是命令执行的结果,成功返回 0,失败返回非 0 值)。和 shell_exec
函数一样,exec
函数同样需要 PHP 的安全模式关闭才能正常工作。
示例:
$command = 'ls -l';
$output = array();
$status = 0;
exec($command, $output, $status);
echo "<pre>$status: " . implode("\n", $output) . "</pre>";
上面的例子会打印出当前目录下的文件和子目录的详细信息,并且将命令的状态码输出。
passthru 函数
passthru
函数执行命令,直接将命令的输出发送到浏览器,不保存命令的输出。
示例:
$command = 'ls -l';
passthru($command);
上面的例子会直接将当前目录下的文件和子目录的详细信息输出到浏览器。
system 函数
system
函数执行命令,返回命令执行后的输出(标准输出),并返回命令的状态码。和 exec
函数一样,system
函数同样需要 PHP 的安全模式关闭才能正常工作。
示例:
$command = 'ls -l';
$output = system($command, $status);
echo "<pre>$status: $output</pre>";
上面的例子会打印出当前目录下的文件和子目录的详细信息,以及命令的状态码。
总结:
以上介绍了 PHP 中常用的四个命令行工具,任何一种工具用起来都需要根据实际需求进行选择。在使用这些工具时,需要注意安全问题,如:关闭安全模式。在处理用户输入,构造命令时,还要对命令的执行结果进行输入过滤和输出过滤,防范各种命令注入攻击。
本文标题为:PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍


基础教程推荐
- php生成短网址/短链接原理和用法实例分析 2023-04-20
- PHP基于反射机制实现自动依赖注入的方法详解 2022-10-02
- Laravel修改验证提示信息为中文的示例 2023-03-08
- php如何获取当前日期和星期 2024-12-06
- Laravel 解决composer相关操作提示php相关异常的问题 2023-03-08
- php去除deprecated的实例方法 2022-09-02
- PHP采用get获取url汉字出现乱码的解决方法 2024-03-28
- PHP laravel使用自定义邮件类实现发送邮件 2023-07-03
- PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br 2024-03-28
- php+mysql开发的最简单在线题库(在线做题系统)完整案例 2023-01-04