• 技术文章 >后端开发 >PHP问题

    一起看看PHP常用命令执行函数

    长期闲置长期闲置2022-05-20 11:56:12转载468
    本篇文章给大家带来了关于PHP的相关知识,其中主要介绍了关于PHP中一些常见的命令执行函数,利用命令执行函数执行操作系统命令,下面一起来看一下,希望对大家有帮助。

    推荐学习:《PHP视频教程

    PHP命令执行函数常配合代码执行漏洞使用, 利用命令执行函数执行操作系统命令, 从而发起攻击, 接下来就简单分享几个常用的PHP命令执行函数

    system();

    system()函数可以执行系统命令, 并将命令执行的结果直接输出到界面中, 使用时直接在参数中传入需要执行的命令即可

    system('ls');

    exec();

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

    exec( 'ls' , $result );
    参数1: 字符串类型,需要执行的系统命令
    参数2: 数组类型,保存系统命令的执行结果
    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`;

    推荐学习:《PHP视频教程

    以上就是一起看看PHP常用命令执行函数的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:php
    上一篇:php中如何判断是奇数还是偶数 下一篇:php怎么将time()值转换为年月日
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php怎么判断两个数组是否有相同值• 实例解析thinkphp怎么用中间件记录行为日志• php数组怎么去除多个元素• php标量数据和数组的最大区别是什么• php如何修改数组的下标
    1/1

    PHP中文网