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");

  • 相关阅读:
    nginx 详解
    阿里云 消息队列mq
    手机浏览器Yandex安装插件说明
    windows下JAVA环境变量配置
    共享文件夹免密登入
    自动添加静态路由
    加入WSUS补丁服务器并下载补丁
    加入时间同步服务器(NTP)
    更改rdp端口
    关闭及开启445等危险端口
  • 原文地址:https://www.cnblogs.com/mouseleo/p/11732595.html
Copyright © 2011-2022 走看看