zoukankan      html  css  js  c++  java
  • PHP中常见的几种运行代码的方式

    常见的运行程序的方法有

    • shell_exec
    • ``(反引号)
    • eval
    • system
    • exec
    • passthru

    下面分别介绍他们的用法:

    名称 解释 返回值 注意
    shell_exec 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。与执行操作符(也叫执行运算符)相同 命令执行的输出。 如果执行过程中发生错误或者进程不产生输出,则返回 NULL  
    ``(反引号) PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符(`)的效果与函数 shell_exec() 相同。   反引号运算符在激活了安全模式或者关闭了 shell_exec() 时是无效的。
    与其它某些语言不同,反引号不能在双引号字符串中使用。
    eval 把字符串作为PHP代码执行。 eval() 返回 NULL,除非在执行的代码中 return 了一个值,函数返回传递给 return 的值。 PHP 7 开始,执行的代码里如果有一个 parse error,eval() 会抛出 ParseError 异常。在 PHP 7 之前, 如果在执行的代码中有 parse error,eval() 返回 FALSE,之后的代码将正常执行。无法使用 set_error_handler() 捕获 eval() 中的解析错误。 函数eval()语言结构是 非常危险的, 因为它允许执行任意 PHP 代码。 它这样用是很危险的。 如果您仔细的确认过,除了使用此结构以外 别无方法, 请多加注意,不要允许传入任何由用户 提供的、未经完整验证过的数据 。
    system 执行外部程序,并且显示输出。 成功则返回命令输出的最后一行, 失败则返回 FALSE。  
    exec 执行一个外部程序。 命令执行结果的最后一行内容。 如果你需要获取未经处理的全部输出数据, 请使用 passthru() 函数。  
    passthru 执行外部程序并且显示原始输出。同 exec() 函数类似, passthru() 函数 也是用来执行外部命令(command)的。 当所执行的 Unix 命令输出二进制数据, 并且需要直接传送到浏览器的时候, 需要用此函数来替代 exec() 或 system() 函数。 常用来执行诸如 pbmplus 之类的可以直接输出图像流的命令。 通过设置 Content-type 为 image/gif, 然后调用 pbmplus 程序输出 gif 文件, 就可以从 PHP 脚本中直接输出图像到浏览器。 没有返回值  

    其他程序执行函数

      • escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数
      • escapeshellcmd — shell 元字符转义
      • exec — 执行一个外部程序
      • passthru — 执行外部程序并且显示原始输出
      • proc_close — 关闭由 proc_open 打开的进程并且返回进程退出码
      • proc_get_status — 获取由 proc_open 函数打开的进程的信息
      • proc_nice — 修改当前进程的优先级
      • proc_open — 执行一个命令,并且打开用来输入/输出的文件指针。
      • proc_terminate — 杀除由 proc_open 打开的进程
      • shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。
      • system — 执行外部程序,并且显示输出
  • 相关阅读:
    ASP.NET Cookies简单应用 记住用户名和密码
    index.dat文件剖析
    簇集索引与聚集索引
    C#开发飞信机器人
    详解Javascript中的Url编码/解码
    基于关系型数据库的WEB OA公文流转系统
    今天Apple陆家嘴点“开战”
    准备在cnblogs活动上的演讲
    4年技术经验
    chinajoy之行
  • 原文地址:https://www.cnblogs.com/miao-zp/p/9758957.html
Copyright © 2011-2022 走看看