zoukankan      html  css  js  c++  java
  • php执行普通shell命令

    这里只演示一些普通的shell命令,一些需要root用户权限执行的命令,请参考:php以root权限执行shell命令

      php执行shell命令,可以使用下面几个函数:

    1
    2
    3
    string system ( string $command [, int &$return_var ] )
    string exec ( string $command [, array &$output [, int &$return_var ]] )
    void passthru ( string $command [, int &$return_var ] )

      注意的是:这三个函数在默认的情况下,都是被禁止了的,如果要使用这几个函数,就要先修改php的配置文件php.ini,查找关键字disable_functions,将这一项中的这几个函数名删除掉,然后注意重启apache。

      首先看一下system()和passthru()两个功能类似,可以互换:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
        $shell = "ls -la";
        echo "<pre>";
        system($shell, $status);
        echo "</pre>";
        //注意shell命令的执行结果和执行返回的状态值的对应关系
        $shell = "<font color='red'>$shell</font>";
        if( $status ){
            echo "shell命令{$shell}执行失败";
        } else {
            echo "shell命令{$shell}成功执行";
        }
    ?>

      执行结果如下:

      

      注意,system()会将shell命令执行之后,立马显示结果,这一点会比较不方便,因为我们有时候不需要结果立马输出,甚至不需要输出,于是可以用到exec()

      

      exec()的使用示例: 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
        $shell = "ls -la";
        exec($shell, $result, $status);
        $shell = "<font color='red'>$shell</font>";
        echo "<pre>";
        if( $status ){
            echo "shell命令{$shell}执行失败";
        } else {
            echo "shell命令{$shell}成功执行, 结果如下<hr>";
            print_r( $result );
        }
        echo "</pre>";
    ?>

      运行结果如下:

     

      

    如需转载,请注明文章出处,谢谢!!!
  • 相关阅读:
    SoapUI 使用笔记
    git 使用笔记(二)
    git 使用笔记(一)
    jquery 拓展
    hdu 1024 Max Sum Plus Plus (DP)
    hdu 2602 Bone Collector (01背包)
    hdu 1688 Sightseeing (最短路径)
    hdu 3191 How Many Paths Are There (次短路径数)
    hdu 2722 Here We Go(relians) Again (最短路径)
    hdu 1596 find the safest road (最短路径)
  • 原文地址:https://www.cnblogs.com/xzlive/p/12842808.html
Copyright © 2011-2022 走看看