zoukankan      html  css  js  c++  java
  • PHP 调用shell命令

    可以使用的命令:

    popen
    fpassthru
    shell_exec
    exec
    system

    1.popen

    resource popen ( string command, string mode )

    打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。

    返回一个和 fopen() 所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用 pclose() 来关闭。此指针可以用于 fgets() fgetss() 和 fwrite() 

    如果出错返回 FALSE 

    2.shell_exec

    string shell_exec ( string cmd )

    执行cmd命令,命令的结果存在返回结果中;

    本函数在安全模式 下被禁用。

    3.exec

    string exec ( string command [, array &output [, int &return_var]] )

    参数:
    command
    将要执行的命令

    output
    如果指定了output参数,则对应的array数组将会填满该命令输出的每一行。

    return_var
    如果指定了return_var参数,注意,return_var参数只有output参数被设定后才能指定,那么该命令的执行状态将会以结果参数的形式返回给该变量。 


    返回值:
    返回改名了的最后一行结果。


    范例
    例子 1. An exec() example
    [root@south4 demo]# vi test.PHP
    #!/usr/bin/php  -q
    <?php

    exec('ls /etc',$results,$ret);

    echo  $results[5] . "/n";
    echo  $results[12]. "/n";
    echo  $results[3]. "/n";
    echo  $ret;
    ?>

    [root@south4 demo]# ./test.php 
    aliases
    audit
    adjtime
    0

    4.system

    string system ( string command [, int &return_var] )

    system是开一个bash进程的,执行完毕之后,就会释放,如下就会达不到目的:

    system("cd /home/y/share/NBHadoop/scripts");

    system("sudo -u yahoo ./nb_halfhourly.sh $yes_halfHour");

    可以写成:

    system("cd /home/y/share/NBHadoop/scripts;sudo -u yahoo ./nb_halfhourly.sh $yes_halfHour");

  • 相关阅读:
    nodejs--模块化
    node-package.json 文件package-lock.json
    NPM
    REPL介绍
    nvm npm nrm 区别
    docker docker-compose安装
    微信小程序对接阿里云视频点播,备忘
    python requests包爬网页数据demo
    php redis扩展地址
    php7.2.4安装rabbitmq扩展的过程中错误处理
  • 原文地址:https://www.cnblogs.com/daochong/p/7084729.html
Copyright © 2011-2022 走看看