当前位置:首页 > 关注 > > 正文

今头条!PHP命令执行的函数

来源:哔哩哔哩    时间:2023-01-25 17:08:01

在做面试题的时候发现,自己对PHP命令执行的函数的了解并不是很全面,就想这去学习一下。我 也在网上找到了许多的资料,在这里我就相当于一个总结吧。

system();

System()函数的主要功能是在系统权限允许的情况是执行系统命令,windows系统和Linux系统都可以执行,Windows系统下可执行可执行文件(.exe、.bat等),也可执行cmd命令,Linux下用途更广,因为Linux系统就是基于命令行的,如基本的ls、cp、rm等

system('ls');


(资料图片仅供参考)

编辑exec();

exec()函数可以执行系统命令, 但它不会直接输出结果, 而是将执行的结果保存到数组中

exec( 'ls' , $result );            参数1: 字符串类型,需要执行的系统命令        参数2: 数组类型,保存系统命令的执行结果print_r($result);    //输出执行结果

exec( 'ls' , $result );print_r($result);

编辑

shell_exec();

shell_exec()函数可以执行系统命令, 但它不会直接输出执行的结果, 而是返回一个字符串类型的变量来存储系统命令的执行结果, 在参数中传递需要执行的系统命令即可

echo shell_exec('ls');

编辑

passthru(); 

passthru()函数可以执行系统命令, 并将执行结果输出到页面中, 与system()函数不同的是, 它支持二进制的数据, 更多的用于文件, 图片等操作, 使用时直接在参数中传递字符串类型的系统命令即可 

passthru('ls');

编辑

popen();

popen()函数可以执行系统命令, 但不会输出执行的结果, 而是返回一个资源类型的变量用来存储系统命令的执行结果, 需要配合fread()函数来读取命令的执行结果

$result = popen( 'ls' , 'r' );参数1:字符串类型,需要执行的命令参数2:字符串类型,模式返回值:资源类型,命令执行的结果echo fread( $result , 100 );参数1:资源类型,需要读取的文件指针参数2:int类型,读取n个字节返回值:字符串类型,读取的文件内容

echo fread(popen('ls','r'),100);

编辑

反引号`` 

反引号可以执行系统命令, 但它不会输出结果, 而是返回一个字符串类型的变量, 用来存储系统命令的执行结果, 可单独使用, 也可配合其他命令执行函数使用来绕过参数中的过滤条件

echo `ls`;

关键词: SYSTEM linux WINDOWS ECHO

精心推荐

X 关闭

X 关闭