zoukankan      html  css  js  c++  java
  • PHP执行外部命令总结(exec、system、passthru、shell_exec)

    具体区别如下:

    $command = 'whoami';

    //不直接输入结果内容,命令执行结果的最后一行内容,第二个参数可获取到所有返回结果,每行结果作为一个数组记录,第三个参数返回命令执行的状态码,0代表成功1失败
    $resultData =exec($command,$output,$returnVal);

    //直接将结果输出到浏览器,成功则返回命令输出的最后一行, 失败则返回 FALSE,第二个参数返回命令执行的状态码,0代表成功1失败
    $resultData = system($command,$returnVal);

    //直接将结果输出到浏览器,没有返回值,且可输出二进制,比如图片数据。第二个参数返回命令执行状态码,0代表成功1失败
    $resultData = passthru($command,$returnVal);

    //命令执行的输出。 如果执行过程中发生错误或者进程不产生输出,则返回 NULL。
    $resultData = shell_exec($command);

     一般用exec()会比较多,有返回值和状态码,shell_exec()仅有返回值,没有状态码返回

    system()和passthru()都会直接将结果输出到浏览器,若是用户图像二进制输出时,passthru()更符合要求,且配合header,eg:header("Content-type:image/gif"); 可直接将图像输出。

    问题解决:

    Q:exec, system, passthru, shell_exec 在windows中不生效问题

    A:确定是否是用户权限问题,将同样命令在cmd中看是否能够正常执行。如果可以,将电脑重启后,再试试。

    参考地址:

  • 相关阅读:
    ESP8266型号对比
    Arduino安装ESP8266开发库
    ESP8266驱动I2C OLED显示屏
    爬虫与反爬技术汇总
    爬虫之爬取某道技术分析
    爬虫之12306模拟登陆和购票
    web开发之用户单点登陆和多用户登陆实现
    爬虫中如何获取图片验证码
    web开发中图片保存问题
    python的缓存机制
  • 原文地址:https://www.cnblogs.com/wanghaokun/p/12366151.html
Copyright © 2011-2022 走看看